我有这个HTML内容:
$test = '<section><div class="row">
<div class="col-xs-12" data-type="container-content">
<section data-type="component-photo"><div class="photo-panel">
<img src="http://somewhere.com/XpV8lCLD6pChrysanthemum.jpg" width="100%" height="" style="display: inline-block;">
</div></section></div>
</div></section>';
我有str_replace的代码,因此它会为 img 添加结束标记:
$new = str_replace('"></div>', '"/></div>', $test);
echo $new;
使用inspect元素检查时,图像未按预期关闭。我在这里做错了什么?
附加说明:
我需要PHPWord的结束标记才能工作。此外,$test
的值来自$_POST
,因为它是通过AJAX提供的。
谢谢
答案 0 :(得分:1)
标记和结束标记之间有换行符。您应该重新格式化$ test变量或使用:
$new = preg_replace('/>[\n\r]<\/div>/', '/></div>', $test);
然而,由于所有比赛都将被替换,因此您处于危险区域。 HTML是一种not play well with regex的语言。
如果可能的话,在采用html格式之前解决问题要好得多。
答案 1 :(得分:1)
要做你想要的,你需要搜索该行中的文本(其他答案也更直接地告诉 - 问题是换行符。
$new = str_replace('ck;">\n</div><section>','ck;">\n</div></div><section>',$test);