我有一个div
叫
<div id="form">Content</div>
我想div
用新内容替换Preg_replace
. 应该使用什么正则表达式。?
这将适用于您的情况:
$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>
你根本不应该使用正则表达式。HTML 可以有多种形式,您需要将所有形式都考虑在内。如果 id/class 没有出现在您期望的位置怎么办?正则表达式必须非常复杂才能获得合理的结果。
相反,您应该使用 DOM 解析器——或者我最近偶然发现的一个非常酷的工具phpQuery。有了它,您几乎可以像使用jQuery一样在 PHP 中访问您的文档。