代码之家  ›  专栏  ›  技术社区  ›  ysfkaya

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

  •  -1
  • ysfkaya  · 技术社区  · 6 年前

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

    <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

    顺便说一句。这个字符串通常出现在富文本框中,但是用嵌套引号保存数据库

    我的富文本框是: Summernote

    1 回复  |  直到 6 年前
        1
  •  0
  •   Mohammad DefenestrationDay    6 年前

    使用 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