替换 DIV 中的内容


Replace the content inside a DIV

>我有一个名为div

 <div id="form">Content</div>

我想使用 Preg_replacediv的内容替换为新内容。应该使用什么正则表达式。?

你根本不应该使用正则表达式。HTML可以有多种形式,您需要考虑所有这些形式。如果 id/类没有出现在您期望的位置怎么办?正则表达式必须非常复杂才能获得合理的结果。

相反,你应该使用DOM解析器 - 或者我最近偶然发现的一个非常酷的工具,phpQuery。有了它,你几乎可以像使用 jQuery 一样在 PHP 中访问你的文档。

这将适用于您的情况:

$html = '<div id="content">Content</div>';
$html = preg_replace('/(<'s*div[^>]*>)[^<]*(<'s*'/div's*>)/', '$1New Content$2', $html); 
echo $html; // <div id="content">New Content</div>

但是请注意,由于HTML不是常规语言,因此不可能处理所有情况。在以下示例中,我提供的简单正则表达式将产生错误的输出:

<div class=">">Content</div>