将变量解析为字符串文字

时间:2016-02-07 22:02:45

标签: php string

我在一个我无法控制的变量中有一些字符串。

$foo = 'hey\nman';

(注意单引号,它是文字\ n而不是新行字符)

现在我想把foo解析为好像是在双引号内而不是单引号。因此它会将文字转义字符转换为相应的ascii字符。然后全部是/ r,/ n,/ b,/ t等。

我可以访问$foo,但我无法更改为其分配价值的代码。我的选择是一个正则表达式,但可能会因为许多不同的字符而变得丑陋。我喜欢整洁的PHP处理它,并想知道我是否可以利用它。

2 个答案:

答案 0 :(得分:1)

您可以使用eval:

$foo = 'hey\nman';
eval ('$b = "' . $foo . '";');
var_dump($b);

答案 1 :(得分:0)

您也可以使用字符串替换

$foo = str_replace('\n', "\n", $foo);