【发布时间】:2015-05-18 11:28:41
【问题描述】:
我在名为$str 的变量中有一个字符串,如下所示。这是我将其转换为 JSON 格式后得到的。因此 JSON 添加了一个额外的斜杠,因此请忽略它,因为它在显示字符串时不会显示。
$str ="Let\\'s\nIt\\'s\nHe\\'s\nShe\\'s"; # \n is used for new line character, please ignore it
现在我想检查字符串中是否存在此类反斜杠/es,如果存在则删除它们并获得所需的清理字符串。在上述情况下,输出字符串应该是(将其转换为 JSON 格式后):"Let\'s\nIt\'s\nHe\'s\nShe\'s"
我尝试了下面的代码,但对我没有用:
$str = br2nl(str_replace('\\','',$str));
function br2nl($buff = '') {
$buff = mb_convert_encoding($buff, 'HTML-ENTITIES', "UTF-8");
$buff = preg_replace('#<br[/\s]*>#si', "\n", $buff);
$buff = trim($buff);
return $buff;
}
有人可以在这方面帮助我吗?
【问题讨论】:
-
替换一个\str_replace('\','',$str)
-
@AmanRawat:这做不到。它给出了语法错误。因为我们必须为 PHP 中的每个斜线使用额外的斜线。
-
字符串上的
strip_slashes甚至json_decode怎么样? -
我的意思是一个简单的
echo stripslashes("Let\\'s\nIt\\'s\nHe\\'s\nShe\\'s");- 它会得到你描述的确切结果。请记住,最好以与编码字符串相同的方式进行解码。 -
有点不清楚你在问什么。为什么你首先有那些斜线?我怀疑他们是故意的,你的“实际”文本可能不应该包含这些,对吧? JSON 将添加一个斜杠来转义反斜杠,是的。为什么这是不受欢迎的?如果您不希望数据中出现反斜杠,那么您的数据中不应该有反斜杠,而不是手动摆弄文本格式转义。
标签: php json str-replace backslash stripslashes