Как я могу охарактеризовать все элементы HTML, но не их атрибуты или значения атрибутов?
Я нашел много примеров, например
$newString = preg_replace("/<[^>]+>/e", "strtolower('\\0')", $oldString);
Но это все дело, а не только теги.
Попробуйте следующее:
$newString = preg_replace( "/<([^> ]+)/e", "strtolower('\\0')", $oldString )
как насчет:
$oldString = "<H1 CLASS='abc'>HGKJHG</H1>\n< P ClAsS='AbC123'>HKJGHG</P>"; $newString = preg_replace("~(</?\s*\w+)~e", "strtolower('\\1')", $oldString); echo $newString,"\n";
вывод:
<h1 CLASS='abc'>HGKJHG</h1> < p ClAsS='AbC123'>HKJGHG</p>
$newString = preg_replace("/</?\w+/e", "strtolower('\\0')", $oldString);
function change_case_tags($string, $action = 'mb_strtolower') { $string = preg_replace('!<([^> ]+)!e', "$action('\\0')", $string); if(strpos($string, '=') !== false) { return $string = preg_replace('!(?:\s([^\s]+)=([\'"])?(.+)\\2)!Uie', "$action(' \\1').'='.str_replace('\\\\\\', '', '\\2').'\\3'.str_replace('\\\\\\', '', '\\2').''", $string); } return $string; }