PHP strip标签也删除\ n

时间:2010-10-29 13:46:58

标签: php strip-tags

我在PHP中使用strip_tags,在处理完字符串之后,字符串现在也没有包含\ n ..

这个标准是strip_tags吗?

2 个答案:

答案 0 :(得分:9)

嗯,难以测试吗? :)

class StripTagsTest extends PHPUnit_Framework_TestCase {
    public function testStripTagsShouldNotRemoveLF() {
        $input = "Hello\n <b>World</b>\n";
        $actual = strip_tags($input);
        $expected = "Hello\n World\n";
        $this->assertEquals($expected, $actual);
    }

   public function testStripTagsRemovesBRTagByDefault() {
        $expected = "HelloWorld\n";
        $input = "Hello<br>World<br>\n";
        $actual = strip_tags($input);
        $this->assertEquals($expected, $actual);

        $input = "Hello</br>World</br>\n";
        $actual = strip_tags($input);
        $this->assertEquals($expected, $actual);
    }

    public function testStripTagsCanPermitBRTags() {
        $expected = "Hello<br>World<br>\n";
        $actual = strip_tags($expected, '<br>');
        $this->assertEquals($expected, $actual);

        $expected = "Hello</br>World</br>\n";
        $actual = strip_tags($expected, '<br>');
        $this->assertEquals($expected, $actual);
    }
}

此测试将通过。使用单引号时的结果相同。所以,不,strip_tags不会删除\ n。

编辑: 正如此处的其他人已经指出的那样 - strip_tags可能会删除您案例中的<br>标记。此外,下次,如果您提供一些代码,您将更快地得到答案。 添加了两个新测试:)

答案 1 :(得分:3)

Strip_tags不应该删除\ n但是它可能会删除<br>

尝试添加标签列表以允许:

strip_tags('Hello<br>World', '<br>');

此shold允许<br>标记保留在字符串中。