PHP: strip_tags () удаляет сам закрывающие теги XHTML или нет?

Руководство по PHP говорит

5.3.4 strip_tags () больше не удаляет самозакрывающиеся теги XHTML, если только самозакрывающийся тег XHTML также не указан в allowable_tags.

Но когда я делаю это (5.5):

$text = "<base/><br/>World<hr><input/>";

echo strip_tags($text);

Выход World то есть он сам удаляет закрывающие теги XHTML.

2

Решение

Документы в этом случае просто неверны.

strip_tags() без каких-либо разрешенных тегов полоски самозакрывающихся тегов просто отлично. Однако изменилось то, что с> = 5.3.4 самозакрывающиеся теги игнорируются:

$string = "foo<br>bar<br/>baz<br />\r\n";

echo strip_tags($string); // foobarbaz
echo strip_tags($string, '<br>'); // foo<br>bar<br/>baz<br />
echo strip_tags($string, '<br/>'); // foobarbaz
echo strip_tags($string, '<br />'); // foobarbaz
echo strip_tags($string, '<br><br/>'); // foo<br>bar<br/>baz<br/>

Я создал ошибку чтобы исправить это в документах.

документы обновляются отражать фактическое правильное поведение.

Однако тот факт, что самозакрывающиеся и «нормальные» теги должны быть определены отдельно, сначала кажется мне странным, поэтому может быть это также должно быть исправлено.

При чтении оригинала сообщение об ошибке мне не совсем ясно, что было исправлено и каков будет ожидаемый результат, поэтому мне нужно немного подробнее разобраться.

Мое первоначальное предположение, что должны быть добавлены как самозакрывающиеся, так и несамозакрывающиеся теги, было неверным.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]