1

$matches 返回一个空数组...

这不起作用

$missedvalue = $_GET['missedvalue'];
$pattern = "/(?:\"(?:\\\\\"|[^\"])+\")/is";
preg_match_all($pattern, $missedvalue, $matches);

但这有效

$missedvalue = 'test "gift card"';
$pattern = "/(?:\"(?:\\\\\"|[^\"])+\")/is";
preg_match_all($pattern, $missedvalue, $matches);

这是怎么回事?我不能放弃把我的手指放在它上面......我试图铸造$missedvalue(string)但没有奏效。我不知所措。哦,$_GET['missedvalue']绝对等于test "gift card"

4

2 回答 2

1

我已经在我的机器上尝试了你的代码,它对我有用。在运行正则表达式之前,您可能正在对 $pattern 或对标头进行一些预处理...?

于 2013-06-20T20:08:10.077 回答
1

为什么不在这样的模式中使用单引号:

$pattern = '/(?:"(?:\\\"|[^"])+")/i';
于 2013-06-20T19:58:06.847 回答