我在一个我无法控制的变量中有一些字符串。
$foo = 'hey\nman';
(注意单引号,它是文字\ n而不是新行字符)
现在我想把foo解析为好像是在双引号内而不是单引号。因此它会将文字转义字符转换为相应的ascii字符。然后全部是/ r,/ n,/ b,/ t等。
我可以访问$foo
,但我无法更改为其分配价值的代码。我的选择是一个正则表达式,但可能会因为许多不同的字符而变得丑陋。我喜欢整洁的PHP处理它,并想知道我是否可以利用它。
答案 0 :(得分:1)
您可以使用eval:
$foo = 'hey\nman';
eval ('$b = "' . $foo . '";');
var_dump($b);
答案 1 :(得分:0)
您也可以使用字符串替换
$foo = str_replace('\n', "\n", $foo);