你好,如标题所述:
我有这样的输入为<input type="hidden" name="test[]" />
我想要做的是从name属性中删除[],这样看起来像这样<input type="hidden" name="test" />
我想使用正则表达式或domdocument使用它。谢谢您的帮助。
ps:我有很多输入,所以他们将是随机名称属性,不仅测试
我正在使用foreach()代码来获取网站上的所有帖子,因此在name属性中使用数组的输入不会被提交,这就是原因。
答案 0 :(得分:1)
以下是实现目标的方法:
$html = "<<YOUR_HTML_STRING>>"
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
// Or use $dom->loadHTMLFile($url)
$xpath = new DOMXPath($dom);
$inputs = $xpath->query('//input[@name]'); // Get all <input> tags with name attributes
foreach($inputs as $input) {
$name = $input->getAttribute('name'); // Get the name attribute value
if (substr($name, -2) === "[]") { // If it ends with [], replace
$newval = substr($name, 0, $input->getAttribute('name')->length - 2);
$input->setAttribute('name', $newval); // Set the new value
}
}
echo $dom->saveHTML();
请参阅IDEONE demo