删除具有指定名称属性的 <input> 标签

问题描述 投票:0回答:2

我想替换一个字符串,例如:

<input type="hidden" name="id" value="12345" />

但我遇到的问题是该值的值(12345)每次都不同,所以我该如何做我想做的事情呢? ..我猜正则表达式'但没有任何线索。

php html-parsing removechild
2个回答
6
投票
preg_replace('/\<input type="hidden" name="id" value="[0-9]+" \/\>/is', '', $source)

0
投票

使用 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>
© www.soinside.com 2019 - 2024. All rights reserved.