Есть xml файл выгруженный в строку вида
<catalog>
<item id="111" name="Тут может содержаться ; которую не надо заменять" property="Дата;Имя;
2017-01-01;Ivan;
2017-02-02;Vova;" />
<item id="112" name="Тут может содержаться ; которую не надо заменять" property="Дата;Имя;
2017-01-02;Ivan;
2017-02-03;Vova;" />
</catalog>
Ни как не могу привести код к виду
<catalog>
<item id="111" name="Тут может содержаться ; которую не надо заменять" property="Дата!тут мой символ1! Имя!тут мой символ1!!тут мой символ2!2017-01-01!тут мой символ1!Ivan!тут мой символ1!!тут мой символ2!2017-02-02!тут мой символ1!Vova!тут мой символ1!" />
<item id="112" name="Тут может содержаться ; которую не надо заменять" property="Дата!тут мой символ1! Имя!тут мой символ1!!тут мой символ2!2017-01-02!тут мой символ1!Ivan!тут мой символ1!!тут мой символ2!2017-02-03!тут мой символ1!Vova!тут мой символ1!" />
</catalog>
То есть мне необходимо заменить все переносы строк на !тут мой символ2!, а все точки с запятой на !тут мой символ1!, но тольк внутри атрибута property.
Вариант с использованием регулярных выражений:
<?php
$xml = '<catalog>
<item id="111" name="Тут может содержаться ; которую не надо заменять" property="Дата;Имя;
2017-01-01;Ivan;
2017-02-02;Vova;" />
<item id="112" name="Тут может содержаться ; которую не надо заменять" property="Дата;Имя;
2017-01-02;Ivan;
2017-02-03;Vova;" />
</catalog>';
$symb_1 = '!тут мой символ1!'; // Замена точки с запятой
$symb_2 = '!тут мой символ2!'; // Замена переносов
echo preg_replace_callback(
'~property="[^"]+"~',
function ($m) use ($symb_1, $symb_2) {
if (!empty($m[0])) {
$patt = ['~;~', "~\n~", '~\s{2,}~'];
$symb = [$symb_1, $symb_2, null];
return preg_replace($patt, $symb, $m[0]);
}
},
$xml
);
Виртуальный выделенный сервер (VDS) становится отличным выбором
С клиента на сервер приходит json формы, в одном из полей которой храниться картинка в виде base64Как эту картинку средствами php5 сохранить на сервер...
Здравствуйте,у меня есть json файл который передается с формы на серверКак мне вывести все checked элементы в таблицу на PHP для отправки на эмейл
Слева блок это категорииНа каждой странице (/cart или /register) видно этот блок