Php str_替换双引号和单引号
我有一个简单的PHP脚本,应该用反斜杠转义单引号和双引号。这是我的密码:Php str_替换双引号和单引号,php,escaping,str-replace,Php,Escaping,Str Replace,我有一个简单的PHP脚本,应该用反斜杠转义单引号和双引号。这是我的密码: $output = str_replace('"','\"',$input); $output = str_replace("'","\'",$output); return $output; 问题是,它只会转义双引号,所以 "This" is a 'string' 解析为 \"This\" is a 'string' 不是 如果我把第二行改成 $output = str_replace("'","asdf",$ou
$output = str_replace('"','\"',$input);
$output = str_replace("'","\'",$output);
return $output;
问题是,它只会转义双引号,所以
"This" is a 'string'
解析为
\"This\" is a 'string'
不是
如果我把第二行改成
$output = str_replace("'","asdf",$output);
我明白了
你知道怎么回事吗
谢谢试试这个:
$output = str_replace("\"","\\\"",$input);
$output = str_replace("\'","\\\'",$output);
return $output;
问题是“在字符串中,应该记为\”,因为它是一个转义字符。反斜杠\在字符串中也是双精度\字符
让我知道这是否有效。试试这个:
$output = str_replace("\"","\\\"",$input);
$output = str_replace("\'","\\\'",$output);
return $output;
问题是“在字符串中,应该记为\”,因为它是一个转义字符。反斜杠\在字符串中也是双精度\字符
让我知道这是否有效。我对您的代码没有问题,我的测试如下:
<?php
$input = '"This" is a '."'".'String'."'";
echo $input.'<br />';
//Echos "This" is a 'String'
$output = str_replace('"','\"',$input);
$output = str_replace("'","\'",$output);
echo $output;
//Echos \"This\" is a \'String\'
我对您的代码没有问题,我的测试如下:
<?php
$input = '"This" is a '."'".'String'."'";
echo $input.'<br />';
//Echos "This" is a 'String'
$output = str_replace('"','\"',$input);
$output = str_replace("'","\'",$output);
echo $output;
//Echos \"This\" is a \'String\'
问题已解决。我在浏览器的控制台中查看输出,出于某种原因,控制台显示双引号的反斜杠,但不显示单引号。查看源代码显示它工作正常。问题已解决。我在浏览器的控制台中查看输出,出于某种原因,控制台显示双引号的反斜杠,但不显示单引号。查看源代码显示它工作正常。@symlynk我对你的代码没有问题,你是如何声明你的$input
?它是一个存储在CMS中的字符串变量。我知道它已经解决了,但你可以使用@symlynk我对你的代码没有问题,你是如何声明你的$input
?它是一个存储在CMS中的字符串变量。我知道它已经解决了,但是你可以使用它仍然产生相同的结果。双引号被转义,单引号被忽略。你能给我看一下你的输入字符串吗?还有其他str_替换吗?这仍然会产生相同的结果。双引号被转义,单引号被忽略。你能给我看一下你的输入字符串吗?你还有其他的str_替代品吗?太好了!请记住,'和'是转义字符,将来应该这样处理。这将给您带来最少的麻烦。太好了!请记住,'和'是转义字符,将来应该这样处理。那会给你带来最少的麻烦。