将所有 HTML 标签转换为小写

Ang*_*o A 0 php regex preg-replace

我有这个代码,但 PHP 给了我一个Unknown modifier '?'错误。

有谁知道我做错了什么?(我在网上找到了代码,因为我不熟悉正则表达式)

$old = "<FONT></FONT><P></P><TR></TR>";
$newString = preg_replace("/</?\w+/e/", "strtolower('\\0')", $old);
echo $newString ."<br/>";
Run Code Online (Sandbox Code Playgroud)

Ωme*_*ega 5

PHP 5.4及更早版本:

$old = "<FONT></FONT><P id='P1'></P><TR></TR>"; 
$newString = preg_replace("/(<\/?\w+)(.*?>)/e", "strtolower('\\1') . '\\2'", $old); 
echo $newString ."<br/>"; 
Run Code Online (Sandbox Code Playgroud)

自 PHP 5.5.0 起不推荐使用e修饰符,请改用:preg_replace_callback

$old = "<FONT></FONT><P id='P1'></P><TR></TR>"; 
$newString = preg_replace_callback("/(<\/?\w+)(.*?>)/", function ($m) {
  return strtolower($m[1]) . $m[2]; }, $old); 
echo $newString ."<br/>"; 
Run Code Online (Sandbox Code Playgroud)

输出:

<font></font><p id='P1'></p><tr></tr><br/>
Run Code Online (Sandbox Code Playgroud)