[英]PHP convert double quoted string to single quoted string
我知道这个问题多次在这里问过。但这些解决方案对我没用。 我今天非常严重地面对这个问题。
// Case 1
$str = 'Test \300'; // Single Quoted String
echo json_encode(utf8_encode($str)) // output: Test \\300
// Case 2
$str = "Test \300"; // Double Quoted String
echo json_encode(utf8_encode($str)) // output: Test \u00c0
我想要case 2的输出,我有单引号$ str变量。 此变量由XML字符串解析填充。 并且该XML字符串保存在txt文件中。
(这里\\ 300是À(拉丁字符)字符的编码,我无法控制它。)
请不要给我解决上面的静态字符串
提前致谢
这样做:
$string = '\300';
$string = preg_replace_callback('/\\\\\d{1,3}/', function (array $match) {
return pack('C', octdec($match[0]));
}, $string);
它匹配反斜杠的任何序列,后跟最多三个数字,并将该数字从八进制数转换为二进制字符串。 其结果与"\\300"
结果相同。
请注意,对于转义转义 ,这不会完全相同; 即"\\\\300"
将产生文字\\300
而上述代码将转换它。
如果你想要所有可能的双引号字符串规则,而不是手工重新实现它们,你最好的选择是简单地eval("return \\"$string\\"")
,但这也有一些警告。
愿你正在寻找这个
$str = 'Test \300'; // Single Quoted String
echo json_encode(stripslashes($str)); // output: Test \\300
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.