我尝试从另一个网站解析一个页面。为此,我使用cUrl
请求(将数据发送到脚本):
$.ajax({
url: 'wordstat/ajax?query='+query+'&page='+page+'&id='+id,
success: function(data){
alert(data);
}
});
此脚本(wordstat / ajax)通过控制器向我的第二个站点发出请求:
控制器:
public function ajax()
{
$this->model->auth();
echo $this->model->parse_uri($_GET['page'],$_GET['query']);
}
型号:
public function parse_uri($url,$word)
{
curl_setopt($this->curl, CURLOPT_URL, "http://wordstat/rating.php?url=".$url."&word=".$word."&gap=3");
$html = mb_convert_encoding(str_replace("\n","",curl_exec($this->curl)), "utf-8", "windows-1251");
preg_match('/<span style="font-size:14px" class=red>(.*)<\/span>/U',$html,$matches);
return $matches;
}
如果我放入浏览器http://localhost/wordstat/ajax?page=page&url=url
并打开此页面,那么
她正确返回另一个网站<span style="font-size:14px" class=red>
的值
但是当我通过Ajax请求执行它时,它总是返回空数组
我做错了什么? 抱歉英文不好
答案 0 :(得分:1)
您可以直接在浏览器中使用
wordstat/ajax?page=page&url=url
但是ajax使用
wordstat/ajax?query='+query+'&page='+page+'&id='+id
也许不同的论点会给你不同的结果。
答案 1 :(得分:0)
问题已解决
$url = str_replace(" ","",$url);
$word = str_replace(" ","",$word);
curl_setopt($this->curl, CURLOPT_URL, "http://parser/rating.php?url=".$url."&word=".$word."&gap=3");
$html = str_replace("\n","",curl_exec($this->curl));
preg_match('/<span style="font-size:14px" class=red>(.*)<\/span>/U',$html,$matches);
return $matches;
感谢anyoune,谁试过帮助