如何使用 php 替换嵌套引号中的双引号

How can I replace double quotes in nested quotes using php

我通过富文本框在数据库中注册了一个动态字符串。像这样。

<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

使用 preg_replace_callback() 到 运行 正则表达式。 style=""和回调函数中的代码select内容将"替换为'

$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