我删除HTML标记的第一次出现在字符串preg_replace
为如何获取preg_replace中的匹配子字符串?
$html = preg_replace('#<p>(.*?)</p>#i', '', $html, 1);
我怎样才能删除的子保存为一个新的字符串:
$deleted = '<p>...</p>';
我删除HTML标记的第一次出现在字符串preg_replace
为如何获取preg_replace中的匹配子字符串?
$html = preg_replace('#<p>(.*?)</p>#i', '', $html, 1);
我怎样才能删除的子保存为一个新的字符串:
$deleted = '<p>...</p>';
,让你可以使用子preg_match():
preg_match('#<p>(.*?)</p>#i', $html, $matches);
只是检查$ matches变量它包含你所需要的。
如果提供了匹配项,则会填充搜索结果。 $匹配[0]将包含匹配完整模式的文本, $匹配1将包含匹配第一个捕获的 括号内子模式的文本,依此类推。
之后使用preg_replace
删除<p>
标记。
,但如果你只是想删除<p>
标签,并保持子刚preg_replace
这样的:
$html = "left <p>substring</p> right";
$html = preg_replace('#</?p>#i', '', $html);
echo $html;
输出:
left substring right
我发布了这个确切的答案,但得到了几个downvotes。有时候这个网站可能会引起人们的注意! – madscientist159
是的,有时候人们很奇怪:/ – yoeunes
如何关于使用将匹配传递给用户的preg_replace_callback
d已定义的功能。
$str = preg_replace_callback($re, function ($m) use (&$p) { $p = $m[0]; }, $str, 1);
$m
为匹配阵列的任何变量名称,其中索引0
是完整的图案匹配use
(&$p)
任何变量名,用于存储匹配(通过引用传递)。
的DOMDocument :: removeChild之 –
@All卡西米尔的评论是最好的做法。使用html解析器处理html字符串是最值得信赖的。为了获得最佳效果,您应该花时间研究和开发利用他的建议的方法。 – mickmackusa