Я с трудом пытаюсь заменить <h1>
теги с <h2>
в части контента.
Самое близкое, что я получил, это:
preg_replace('/<h1[\s*](class|id|style)="(.*?)">(\w*?)<\/h1>/mi', '<h2 $1="$2">$3</h2>', $content);
Проблема здесь в том, что обычная линия h1 как:
<h1>This is the heading</h1>
не будет захвачен
Эта строка:
<h1 style="font-size:13px">Another heading</h1>
Также не будет захвачен, что сбивает меня с толку, так как он использует те же настройки, что и class и id, только со специальными символами, такими как -
, :
и так далее. я думал .*?
покроет
Любая помощь могла бы быть полезна.
Вот что-то похожее, принимая все атрибуты: (все, кроме> в атрибутах)
$str= <<<EOT
<h1>This is the heading</h1>
<h1 style="font-size:13px">Another heading</h1>
EOT;
$str = preg_replace('#<h1([^>]*)>(.*)</h1>#m','<h2$1>$2</h2>', $str);
print $str;
Других решений пока нет …