2015-09-01 2 views
2

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

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

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

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

echo strip_tags($text); 

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

+1

Вы эхом отзываетесь ... в кли или в браузере? Вместо этого попробуйте 'var_dump()'. – ScottMcGready

+0

Браузер Firefox –

+0

try 'var_dump ($ text);' – ScottMcGready

ответ

5

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

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/> 

Я created a bug для того, чтобы исправить это в документации.

docs are updated для правильного отображения.

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

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

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

+1

Я думаю, вы поняли это неправильно. То, что руководство пытается сказать (но терпит неудачу), заключается в том, что вы * не * должны разрешать самозакрывающиеся и «нормальные» теги отдельно, чтобы сохранить оба, как в PHP <5.3.4. Другими словами: 'strip_tags' больше не блокирует'
', если вы только положили'
'в разрешенные теги. Сравните: https://3v4l.org/GntM3 – lafor

+0

@lafor Обновлено сообщение и документы. Выглядит неплохо? – PeeHaa

+0

Для справки, [исправление исходной ошибки] (https://bugs.php.net/bug.php?id=53319). – bishop

Смежные вопросы