来自strip_tags PHP的奇怪行为

时间:2015-11-12 16:57:29

标签: php html strip-tags

我在PHP中使用了一些HTML作为字符串,我使用了$html_str= html_entity_decode()。所以HTML的样本现在看起来像这样:

echo $html_str; // <p>This is <span class='some_class'>some</span> text, yeah!<br>Hello world.</p>

当我这样做时:

$html_str= strip_tags($html_str, '<p>');
echo $html_str; // This is some text, yeah!Hello world.

它会删除包含<p>标记的所有标记。

但如果我这样做:

$html_str= strip_tags($html_str, '<br>');
echo $html_str; // <p>This is some text, yeah!<br>Hello world.</p>

它会删除<span>代码并离开<br><p>

这里发生了什么?

1 个答案:

答案 0 :(得分:0)

第二个参数$allowable_tags说明允许使用哪些标记:

<?php

$html_str = "<p>This is <span class='some_class'>some</span> text, yeah!<br>Hello world.</p>";

echo strip_tags($html_str, '<p>') . "\n";

echo strip_tags($html_str, '<br>') . "\n";

输出是:

<p>This is some text, yeah!Hello world.</p>
This is some text, yeah!<br>Hello world.

正如所料。

http://ideone.com/5R3VvZ

对我来说最可能的解释是,你的字符串中没有<br>,但其他东西(HTML标签是否编码?)。