Перейти к содержимому


Фото
- - - - -

Помогите с preg_match_all


  • Чтобы отвечать, сперва войдите на форум
9 ответов в теме

#1 koteyka

koteyka

    Фрилансер

  • Пользователь
  • 1 341 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Днепропетровск

Опубликовано 13.10.2017 - 02:08

Ну ни как мне не дается эта регулярка  :(

Есть большая строка состоящая из кучи символов, в том числе и переносы строк. Выглядит примерно так:

,"is_promo":false,"realproduct_sku":"34676","images":{"count":0,"s":"//cpn.bublik.ru/img/34676/s/1","n":"//cpn.bublik.ru/img/34676/n/1","z":"//cpn.bublik.ru/img/34676/z/1","stubs":{"s":"/assets/stubs/stub_mini-

Мне нужно вынуть массив из таких строк cpn.bublik.ru/img/34676/z/1

Начало этой строки всегда "//

Окончание всегда ","

Написал вот такую регулярку

preg_match_all("/\"\/\/(.*)\",/U", $input_lines, $output_array);

В конструкторе ТЫЦ Всё работает. Массив $output_array[1], как раз тот, что нужно. Но при вставке этой регулярки в файл php? все массивы пустые. Array ( [0] => Array ( ) [1] => Array ( ) )

Помогите правильно построить это выражение.

Спасибо.
 


Изменено: koteyka, 13.10.2017 - 02:10


#2 yr4ik

yr4ik
  • Фрилансер
  • 715 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 13.10.2017 - 02:56

'~"//(.*?)"~'



#3 miltonmors

miltonmors
  • Пользователь
  • 20 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Николаев

Опубликовано 13.10.2017 - 09:18

Начало этой строки всегда "//
Окончание всегда ","

 
Не очень понятно, какое окончание - то ли из одной запятой, то ли из трех символов. В любом случае в обоих примерах окончание в регулярном выражении не соответствует. Может, потому и все массивы пустые?

Изменено: miltonmors, 13.10.2017 - 09:44


#4 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 120 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 13.10.2017 - 09:27

Погоди, это же JSON, почему бы не поработать с ним через json_decode ?



#5 koteyka

koteyka

    Фрилансер

  • Пользователь
  • 1 341 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Днепропетровск

Опубликовано 13.10.2017 - 10:21

Да, действительно, строка, по ходу JSON, но json_decode($str) , почему-то отдает NULL

Хотя онлайн декодер эту строку декодирует.

Полтергейст какой-то :(


Изменено: koteyka, 13.10.2017 - 10:38


#6 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 120 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 13.10.2017 - 11:54

Да, действительно, строка, по ходу JSON, но json_decode($str) , почему-то отдает NULL

Хотя онлайн декодер эту строку декодирует.

Полтергейст какой-то :(

 

потому что битая где-то... или еще что... а онлайн ошибки учитывает видимо....

нужно поработать с ней именно...

 

напиши на Тостере вопрос, приведи эту строку (полную) в примере...


Изменено: Maksclub, 13.10.2017 - 11:55


#7 koteyka

koteyka

    Фрилансер

  • Пользователь
  • 1 341 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Днепропетровск

Опубликовано 13.10.2017 - 12:03

А что, реализовать проверку ни битость средствами РНР ни как?



#8 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 120 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 13.10.2017 - 12:08

А что, реализовать проверку ни битость средствами РНР ни как?

приведи строку, или она и есть в начале? А почему битая? Может можно достать целую?

Кстати переносы строк могут быть лишними


Изменено: Maksclub, 13.10.2017 - 12:09


#9 koteyka

koteyka

    Фрилансер

  • Пользователь
  • 1 341 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Днепропетровск

Опубликовано 13.10.2017 - 12:16

Кинул полную строку в личку.



#10 Maksclub

Maksclub

    Помогаю с Симплой

  • Фрилансер
  • 1 120 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 13.10.2017 - 12:28

Рабочее решение:

var_dump(json_decode($str, true));






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых