我有一個完整的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組件是一個幫助操作的幫助程序庫。