我有一个完整的HTML页面加载到一个字符串中,我需要根据以下内容修改所有form
。使用preg_replace重写表单属性
原始的HTML:
<form Random=Random>orignal inputs</form>
所需的HTML:
<form Method='POST' action="index.php">orignal inputs</form>
我有一个完整的HTML页面加载到一个字符串中,我需要根据以下内容修改所有form
。使用preg_replace重写表单属性
原始的HTML:
<form Random=Random>orignal inputs</form>
所需的HTML:
<form Method='POST' action="index.php">orignal inputs</form>
正则表达式:
<form .*?>(.*?)</form>
替换字符串:
<form Method='POST' action="index.php">\1</form>
说明: 第.*?
匹配的零个或多个任意字符(除新行),但仅去“>”
(.*?)
再次匹配零个或多个任意字符(除新线)所需的最小,但只有需要达到<
,并创建一个正则表达式组,可以在替换字符串中'反向引用'(http://www.regular-expressions.info/backref.html)。
在替换字符串中,\1
是指在本示例中指向“原始输入”的反向引用。
对于这种类型的任务,您可以尝试Symfony框架的Crawler component。 它可以帮助您浏览DOM并设置节点的属性。
正确的方法是使用dedicated classes provided by PHP来管理DOM树。
Crawler组件是一个帮助操作的帮助程序库。