如何从PHP中的字符串中删除HTML转义序列字符?

时间:2015-08-31 12:05:27

标签: php html string html-entities html-escape-characters

假设,我有一个包含这种字符串的后续字符串变量。

$sample_String = "Dummy User graded your comment \"\r\n\t\t\t\t\tdoc_ck.docx\r\n\t\t\t\t\tDownload\r\n\t\t\t\t\t\" that you posted.";

现在我不想在我的字符串中使用这些HTML字符。

我应该如何以高效可靠的方式删除它们?我想要最终的输出字符串如下:

$sample_String = "Dummy User graded your comment \"doc_ck.docx Download\" that you posted.";

当它在浏览器中显示时,“{1}}出现在”之前将消失,浏览器中的字符串将如下所示:

虚拟用户对您发布的评论“doc_ck.docx下载”进行了评分。

不是吗?

感谢。

直到现在我已尝试过以下代码,但没有成功:

'\'

2 个答案:

答案 0 :(得分:2)

如果您只想删除\r(carrige return)\n(换行符)和\t(标签符号),您可以执行以下操作:

$string = "Dummy User graded your comment \"\r\n\t\t\t\t\tdoc_ck.docx\r\n\t\t\t\t\tDownload\r\n\t\t\t\t\t\" that you posted.";
$string = str_replace(array("\r", "\n", "\t"), "", $string);

如果您想保留换行符(并让它们显示在浏览器中),请执行以下操作:

$string = "Dummy User graded your comment \"\r\n\t\t\t\t\tdoc_ck.docx\r\n\t\t\t\t\tDownload\r\n\t\t\t\t\t\" that you posted.";
$string = nl2br(str_replace(array("\r", "\t"), "", $string));

HTML实体是"?

等序列

答案 1 :(得分:1)

使用像这样的正则表达式:

<?php
$str = "Dummy User graded your comment \"\r\n\t\t\t\t\tdoc_ck.docx\r\n\t\t\t\t\tDownload\r\n\t\t\t\t\t\" that you posted.";
echo preg_replace('/[\r\n\t]+/m','',$str);