php preg_replace 从输入中替换数组名称

php preg_replace replace array name from input

你好如标题所述:
我有这样的输入
<input type="hidden" name="test[]" />
我想做的是从 name 属性中删除 [] 所以它看起来像这样
<input type="hidden" name="test" />
我想使用正则表达式或 domdocument 来使用它。谢谢您的帮助。
ps : 我有很多输入,所以它们将是随机名称属性,而不仅仅是测试。
我正在使用 foreach() 代码从网站获取所有帖子,因此不会提交名称属性中带有数组的输入,这就是原因。

这是一种实现您所追求的目标的方法:

$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