Парсинг строки PHP xml

345
16 апреля 2017, 03:01

Как я могу распарсить строку в массив. Каждый массив должен начинаться с даты. В строке я должен находить установленную дату сообщения и вырезать все сообщение вместе с датой. Имеется еще одна проблема. Данные приходят от 1С и при переносе строки используется символ "↵" или "↵↵" .. как их можно обрезать, и вместо них вставить обычный пробел?

Текст

02.09.2016 18:04:12, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":↵Регион: Москва↵Количество точек: 1↵↵26.07.2016 10:54:29, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":↵Регион: Москва↵Количество точек: 1↵↵20.07.2016 12:33:23, Петрова Юлия вернул(а) сделку на этап "Визит к клиенту"↵↵24.06.2016 17:41:36, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":↵Регион: Москва↵Количество точек: 1↵↵07.06.2016 13:58:38, Петрова Юлия вернул(а) сделку на этап "Визит к клиенту"↵↵25.05.2016 17:20:42, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":↵↵25.05.2016 17:20:42, Петрова Юлия выполнил(а) задачу "Квалифицировать клиента":↵↵

Выходные данные

[
 0 => 02.09.2016 18:04:12, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту": Регион: Москва Количество точек: 1
 1 => 26.07.2016 10:54:29, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту": Регион: Москва Количество точек: 1
]
Answer 1

Думаю данный пример парсинга вам поможет

<?php
$string = '02.09.2016 18:04:12, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":↵Регион: Москва↵Количество точек: 1↵↵26.07.2016 10:54:29, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":↵Регион: Москва↵Количество точек: 1↵↵20.07.2016 12:33:23, Петрова Юлия вернул(а) сделку на этап "Визит к клиенту"↵↵24.06.2016 17:41:36, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":↵Регион: Москва↵Количество точек: 1↵↵07.06.2016 13:58:38, Петрова Юлия вернул(а) сделку на этап "Визит к клиенту"↵↵25.05.2016 17:20:42, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":↵↵25.05.2016 17:20:42, Петрова Юлия выполнил(а) задачу "Квалифицировать клиента":↵↵';
$array = explode('↵↵',$string);
foreach ($array as &$str) {
    $str = str_replace('↵', '&nbsp;', $str);
}
print_r($array );
?> 

В итоге должно получится так

     Array
(
    [0] = 02.09.2016 18:04:12, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":&nbsp;Регион: Москва&nbsp;Количество точек: 1
    [1] = 26.07.2016 10:54:29, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":&nbsp;Регион: Москва&nbsp;Количество точек: 1
    [2] = 20.07.2016 12:33:23, Петрова Юлия вернул(а) сделку на этап "Визит к клиенту"
    [3] = 24.06.2016 17:41:36, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":&nbsp;Регион: Москва&nbsp;Количество точек: 1
    [4] = 07.06.2016 13:58:38, Петрова Юлия вернул(а) сделку на этап "Визит к клиенту"
    [5] = 25.05.2016 17:20:42, Петрова Юлия выполнил(а) задачу "Отразить визит к клиенту":
    [6] = 25.05.2016 17:20:42, Петрова Юлия выполнил(а) задачу "Квалифицировать клиента":
    [7] = 
)
READ ALSO
Изменение структуры массива php

Изменение структуры массива php

Есть массив $res, который имеет структура следующего типа

219
Как сделать мультиязычность в zend3? [требует правки]

Как сделать мультиязычность в zend3? [требует правки]

Как сделать мультиязычность в zend3 с примером, заранее спасибо

246
Regex. Отрицание

Regex. Отрицание

preg_match_all('~[,()^/*+-]~', $e, $m)и preg_split("/\,|\(|\)|\^|\/|\*|\-|\+/",$e); разделяет мне строку в массив по определенным словамМне надо разделять строку по словам, отличным...

261
Как передать свои данные в очередь Queue Laravel 5.3?

Как передать свои данные в очередь Queue Laravel 5.3?

Как мне передать свои данные в очередь Queue что бы при обработке очереди в методе handle() - производились операции над ними? Пробую кидать как...

427