PHP:是否有一个函数来解析由引号括起来的文本作为字符串?

时间:2014-08-28 08:30:50

标签: php string parsing escaping quotes

我正在寻找一种简单的方法来解析由引号("')包围的文本作为字符串,其中相同的引号字符可以在该字符串中使用(由反斜杠转义{ {1}})。 所以PHP在解析字符串时基本上与内部相同。 Python有\(感谢@georg指出这一点)。

实施例

输入

literal_eval

输出

"This is a \"cool\" string"

使用This is a "cool" string会有效,但我想避免使用它。以下示例

eval

内置有什么东西吗?

修改

哇,我真的认为“解析一个字符串”的解释是“所以基本上PHP在解析字符串时内部做的事情”将是一个明显的要求:D

想一个更高级的例子:

输入

$str = '"This is a \\"cool\\" string"'; $a = eval("return $str;"); var_dump($a); // Output: string(23) "This is a "cool" string"

输出

"This is a \"cool\" string that contains one backslash \\ or maybe two in a row \\\\"

相应的PHP代码是:

This is a "cool" string that contains one backslash \ or maybe two in a row \\

我正在为$input = '"This is a \\"cool\\" string that contains one backslash \\\\ or maybe two in a row \\\\\\\\"'; $output = parse_quoted_string($str); var_dump($output); // string(78) "This is a "cool" string that contains one backslash \ or maybe two in a row \\" 寻找合适的功能。

1 个答案:

答案 0 :(得分:1)

输入字符串是JSON - 只需使用json_decode

DEMO