2

PHP で strip_tags を使用していますが、文字列を処理した後、文字列には \n も含まれなくなりました。

これは strip_tags の標準ですか?

4

2 に答える 2

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>タグを削除します。また、次回は何らかのコードを提供していただくと、回答がより早く得られます。2 つの新しいテストを追加しました:)

于 2010-10-29T13:59:43.733 に答える
3

Strip_tagsは\nを削除するべきではありませんが、おそらく削除し<br>ます。

許可するタグのリストを追加してみてください。

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

このsholdにより、<br>タグを文字列に残すことができます。

于 2010-10-29T13:58:12.910 に答える