像分析字符串文本一样分析变量


Parse a variable as if it were a string literal

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

$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);