使用preg_replace查找和替换属性

Gre*_*der 1 php regex preg-replace

我试图重做一些具有大写字段名称和空格的表单,有数百个字段和50 +表单...我决定尝试编写一个PHP脚本来解析表单的HTML.

所以现在我有一个textarea,我将发布html进入,我想更改所有的字段名称

name="Here is a form field name"
Run Code Online (Sandbox Code Playgroud)

name="here_is_a_form_field_name"
Run Code Online (Sandbox Code Playgroud)

如何在一个命令中解析并更改它,以便名称标签中的所有内容都是小写的,空格将替换为下划线

我假设preg_replace有一个表达式?

谢谢!

Man*_*eUK 8

我建议不要使用正则表达式来操纵HTML ..我会使用DOMDocument代替,如下所示

$dom = new DOMDocument();
$dom->loadHTMLFile('filename.html');

// loop each textarea
foreach ($dom->getElementsByTagName('textarea') as $item) {

    // setup new values ie lowercase and replacing space with underscore
    $newval = $item->getAttribute('name');
    $newval = str_replace(' ','_',$newval);
    $newval = strtolower($newval);
    // change attribute
    $item->setAttribute('name', $newval);
}
// save the document
$dom->saveHTML();
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用Simple HTML DOM Parser之类的工作 - 链接网站上有一些很好的例子