Задать вопрос

Как получить подстроку из строки php?

Здравствуйте! Никак не могу набор подстрок из строки до определенного символа..Кажется тут нужно использовать регулярные выражения, но не что-то идет не так.
У меня есть строка, это не JSON, потому что дальше идет произвольный текст, а дальше опять что-то похожее на строку. Главное, что это СТРОКА!

Есть длинная строка
$str = '...... text": "{\"sender\":null,\"recipient\":null,\"stateCode\":null,\"results\":[{\"applicationID\":\"цуцуцу-affb-4406-a536-8e7129e55fb0\",\"regNumb\":\"0001.001521/2021-0000005\",\"regDate\":\"2021-07-01\",\"appealPurpose\":\"Назначение\",\"appealType\":\"Через ЕПГУ\",\"nameSSM\":\"Выплата 1",\"category\":\"\",\"socialNum\":\"2222222\",\"lastName\":\"Каплин\",\"firstName\":\"Сергей\",\"middleName\":\"Евгеньевич\",\"verdict\":\"REGISTERED\"},{\"applicationID\":\"adsadasd-485c-4118-82f8-3fcf46bb87eb\",\"regNumb\":\"0wwwww001.001521/2021-ввывыы\",\"regDate\":\"2021-07-01\",\"appealPurpose\":\"Назначение\",\"appealType\":\"Через\",\"nameSSM\":\"Выплата",\"category\":\"\",\"socialNum\":\"222222222\",\"lastName\":\"Карпова\",\"firstName\":\"Евгения\",\"middleName\":\"Мадридова\",\"verdict\":\"REGISTERED\"},{\"applicationID\":\"e4288aa9-вфцвцфв-4118-82f8-фцвфцвф\",\"regNumb\":\"фцвцфвфцв/2021-фцвцфв\",\"regDate\":\"2021-07-01\",\"appealPurpose\":\"Назначение\",\"appealType\":\"Через \",\"nameSSM\":\"Выплата 1....................';


Необходимо вытянуть из такой строки все ФИО (lastName,firstName,middleName).. и поместить допустим в массив
  • Вопрос задан
  • 175 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 3
FanatPHP
@FanatPHP
Чебуратор тега РНР
эта "строка" выдрана из исходного JSON файла тем же варварским способом, которым вы пытаетесь сейчас "распарсить" её.
JSON надо парсить штатными средствами, а не ковырять палкой с гвоздем на конце.
Ответ написан
Комментировать
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Используйте для декодирования функцию json_decode(), но с вашей строкой что-то явно не так.
Ответ написан
@kapelka001 Автор вопроса
preg_match_all('#\\\"lastName\\\":\\\"([^\x5c"]+)\\\",\\\"firstName\\\":\\\"([^\x5c"]+)\\\",\\\"middleName\\\":\\\"([^\x5c"]+)\K#u', $str, $M, PREG_SET_ORDER);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы