我对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
不正确的事情,但我不知道如何修复它。
请帮助我告诉我你不理解的任何事情
谢谢!
答案 0 :(得分:1)
PHP preg_match
将正则表达式(正则表达式)作为第一个参数,将变量搜索到第二个模式,将数组放在第三个参数中。 “^”是指示字符串开头的正则表达式运算符,因此要搜索字符Caret,请使用反斜杠将其转义。并在模式周围加上括号以获得所有匹配。所以我认为这就是你所寻求的:
preg_match("/(\^\d+)/", $ayalon_result, $array_of_results_ayalon);
交换你拥有的东西,看看你得到了什么。