strip_tags возвращает преждевременно при обнаружении определенного содержимого строки - почему? - PullRequest
0 голосов
/ 19 ноября 2010

каждый, Я уверен, что это особенность, а не ошибка, и я пропускаю нечто очевидное здесь. Но я просто не вижу этого.

У меня есть следующий код, который состоит из HTML, приправленный некоторыми вещами PHP, завернутыми в короткие теги:

$wtf = <<<WTF
<h1>First header</h1>
<p class="intro">First line of text</p>
<h2>Second header</h2>
<p>Second line of text</p>
<?= showImg ('image.jpg'); ?>
<p>Third line of text</p>
<?= showImg ('image.jpg', ''); ?>
<p>Fourth line of text</p>
<?= showImg ('image.jpg', '', ''); ?>
<p>Fifth line of text</p>
<?= showImg ('image.jpg', '', 'class="content"'); ?>
<p>Sixth line of text</p>
WTF;
echo strip_tags ($wtf);[/CODE]

Это выводит следующее:

First header
First line of text
Second header
Second line of text

Third line of text

Fourth line of text

Fifth line of text[/CODE]

Как видите, шестая строка текста не включена в вывод. Виновником является предыдущая строка,

<?= showImg ('image.jpg', '', 'class="content"'); ?>

или, точнее, третий параметр в вызове showImg (). Как только strip_tags () встречает эту часть, он просто завершает работу без отображения сообщения об ошибке и возвращает обработанный текст, что заставляет меня поверить, что каким-то образом он считает, что столкнулся с концом данных, которые он должен обработать.

Почему?

Кстати, Сам бит работает нормально, когда я его запускаю, и даже при полном отчете об ошибках не генерируются предупреждения или ошибки, связанные с синтаксисом, поэтому я считаю, что это допустимый и допустимый синтаксис. Да, я в курсе всей полрелигиозной дискуссии о том, является ли использование коротких тегов хорошей идеей или нет, но сейчас я использую ее, и все, что я хочу знать, - это почему strip_tags преждевременно возвращается, когда обнаруживает третий параметр в вызов showImg ().

Google, другие форумы и поиск по StackOverflow не привели к просветлению. Кто-нибудь может сказать мне, что здесь происходит? Спасибо - это будет высоко оценено!

// Фрэнк

1 Ответ

0 голосов
/ 19 ноября 2010

Проблема не связана с синтаксисом heredoc;Я просто использовал это в этом примере.Проблема в том, что строковые данные передаются в strip_tags, что происходит независимо от того, как данные получены - возвращаются из функции, присваиваются переменной с использованием обычного синтаксиса $ string = "fubar" или чего-либо другого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...