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