Как заменить двойные кавычки во вложенных кавычках с помощью php - PullRequest
0 голосов
/ 11 октября 2018

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

<p style="color: rgb(0, 0, 0); font-family: "Times New Roman"; font-size:"
medium;">LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT.</p>

<ol style="color: rgb(0, 0, 0); font-family: "Times New Roman"; font-size:" 
medium;"><li>BONUM VALITUDO: MISER MORBUS.</li></ol>

И я попытался заменить двойные кавычки в теге style.Но я этого не сделал.Как мне это с PHP.

Кстати.Эта строка обычно отображается в расширенном текстовом поле, но сохранение базы данных с вложенными кавычками

Мое расширенное текстовое поле: Summernote

1 Ответ

0 голосов
/ 11 октября 2018

Используйте preg_replace_callback() для запуска регулярных выражений.Код выбирает содержимое внутри style="" и в функции обратного вызова замените " на '

$newStr = preg_replace_callback("/(?<=style=\")([^>]+)(?=\">)/", function($matches){
    return str_replace('"', "'", $matches[1]);
}, $str);

Обратите внимание, что ваш стиль не ' для последней части стиля.Таким образом, вы можете добавить этот код для добавления ' в конце стиля.

$newStr = preg_replace_callback("/(?<=style=\")([^>]+)(?=\">)/", function($matches){
    $replace = str_replace('"', "'", $matches[1]);
    return substr($replace, -1) == "'" ? $replace : $replace."'";
}, $str);

Проверьте результат в demo

...