我想替换一个字符串,例如:
<input type="hidden" name="id" value="12345" />
但我遇到的问题是该值的值(12345)每次都不同,所以我该如何做我想做的事情呢? ..我猜正则表达式'但没有任何线索。
preg_replace('/\<input type="hidden" name="id" value="[0-9]+" \/\>/is', '', $source)
使用 DomDocument 和 XPath,通过限定的
name
属性可靠且直观地定位并销毁第一个出现的 HTML 输入元素。
代码:(演示)
$html = <<<HTML
<form>
<input type="hidden" name="id" value="12345" />
</form>
HTML;
$dom = new DOMDocument();
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$input = (new DOMXPath($dom))
->query('//input[@name="id"]')
->item(0);
$input->parentNode->removeChild($input);
echo $dom->saveHTML();
输出:
<form>
</form>