У меня есть HTML в строке. Я хочу разделить его часть <head>
. Я использую:Какой самый быстрый способ удалить строку из определенного тега
$html = preg_replace("/<head[^>]*?>.*?<\/head>/s", "", $html);
Но с точки зрения производительности это может быть немного тяжелым. Есть ли лучшая альтернатива?
Я знаю, что могу использовать strip_tags()
и перечислить все принятые теги во втором аргументе, но его слишком много, чтобы его перечислить.
Вы можете использовать 'strpos()' для определения позиции открывающего и закрывающего тега '
', а затем получить подстроку, но я не уверен, что это лучше способ сделать это снова. – PaulВы можете написать лучшее регулярное выражение :) Как ['
] *?> [^ <] * (?: <(?!\/head>) [^ <]*)*<\/head>'] (https://regex101.com/r/iY3cC5/2). Сравните с [вашим] (https://regex101.com/r/iY3cC5/1). –@ WiktorStribiżew Это тот! Можете ли вы написать ответ и объяснить, как он уменьшает шаги и т. Д. Очень впечатляет. Могу ли я добавить больше тегов в одно и то же регулярное выражение? Как '