替换DIV内的内容

时间:2012-05-06 06:53:01

标签: php html regex markup

我有div名为

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

我希望使用div将新内容替换为Preg_replace的内容。 应该使用什么样的正则表达式。?

2 个答案:

答案 0 :(得分:0)

You shouldn't be using a regex at all。 HTML可以有多种形式,您需要考虑所有这些形式。如果id / class没有出现在你期望的地方怎么办?正则表达式必须非常复杂才能获得合理的结果。

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

答案 1 :(得分:0)

这适用于您的情况:

$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>