Используйте 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