提问人:George Vladimir 提问时间:11/9/2023 最后编辑:Casimir et HippolyteGeorge Vladimir 更新时间:11/14/2023 访问量:34
用 '[@]' 动态替换 HTML Span,在 PHP 中使用 preg_replace 处理内部标签 [已关闭]
Dynamic Replacement of HTML Span with '[@]', handling Inner Tags with preg_replace in PHP [closed]
问:
我正在尝试将整个跨度替换为 .问题是,如果 Innovation 名称周围有任何 html 标签,则在这种情况下输出应该是:.如果它周围没有任何 html 标记,则输出应为:.'[@]'
<u>[@]</u>
'[@]'
到目前为止,这是我的代码,我不想使用str_replace因为也许属性不会 100% 处于该位置,这就是我使用 preg_replace 的原因。
$html = '<span contenteditable="false" class="innovNameSearched"><u>Innovation name</u> <i id="removePlaceHolder"></i> </span>';
$replacement = '[@]'
$pattern = '/<span[^>]*\bclass="innovNameSearched"[^>]*>.*?<\/span>/i';
$modifiedHtml = preg_replace($pattern, $replacement, $html);
因此,为了更清楚起见,以下是一些输出示例:
'<span contenteditable="false" class="innovNameSearched"><u>Innovation name</u> <i id="removePlaceHolder"></i> </span>'
=> output: '<u>[@]</u>'
'<span contenteditable="false" class="innovNameSearched"><i>Innovation name</i> <i id="removePlaceHolder"></i> </span>'
=> output: '<i>[@]</i>'
'<span contenteditable="false" class="innovNameSearched">Innovation name <i id="removePlaceHolder"></i> </span>'
=> output: '[@]'
没有必要使用preg_replace,我对其他解决方案持开放态度。
答: 暂无答案
评论
<i>
<u>