PHP で strip_tags を使用していますが、文字列を処理した後、文字列には \n も含まれなくなりました。
これは strip_tags の標準ですか?
うーん、テストは難しいですか?:)
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 つの新しいテストを追加しました:)
Strip_tagsは\nを削除するべきではありませんが、おそらく削除し<br>
ます。
許可するタグのリストを追加してみてください。
strip_tags('Hello<br>World', '<br>');
このsholdにより、<br>
タグを文字列に残すことができます。