PHP preg_match麻烦

时间:2014-06-22 12:56:46

标签: php preg-match

我对PHP中的pre_match有疑问。

这是代码:

function get_ayalon($input) {
$escaped_input = rawurlencode($input); // RFC 3986!
$ayalon_result = get_URL("http://arabdictionary.huji.ac.il/Matrix.Arabdictionary/Search.aspx?RadioArabic=true&RadioRoot=false&WordString=$escaped_input&NX=903");
$array_of_results_ayalon = preg_match($ayalon_result, "/^/g");
echo "<pre>";
print_r($array_of_results_ayalon);
echo "</pre>";
die("done!");
}
  • 变量$ayalon_result调用一个函数,该函数返回带有cURL的页面内容。
  • 在返回的结果中($ayalon_result),有一个^符号,后跟几位数字,在返回页面的底部还有另一个^。我执行preg_match的原因是因为我想在返回页面的顶部设置79156^,并且返回内容底部的^消失。< / LI>

问题是返回的内容只是0,而不是包含内容的数组。我想这是关于/^/g不正确的事情,但我不知道如何修复它。

请帮助我告诉我你不理解的任何事情

谢谢!

1 个答案:

答案 0 :(得分:1)

PHP preg_match将正则表达式(正则表达式)作为第一个参数,将变量搜索到第二个模式,将数组放在第三个参数中。 “^”是指示字符串开头的正则表达式运算符,因此要搜索字符Caret,请使用反斜杠将其转义。并在模式周围加上括号以获得所有匹配。所以我认为这就是你所寻求的:

preg_match("/(\^\d+)/", $ayalon_result, $array_of_results_ayalon);

交换你拥有的东西,看看你得到了什么。