0

我尝试从我的另一个站点解析一个页面。为此,我使用 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 请求时,它总是返回空数组

我做错了什么?对不起英语不好

4

2 回答 2

1

您直接在浏览器中使用

wordstat/ajax?page=page&url=url

但是ajax使用

wordstat/ajax?query='+query+'&page='+page+'&id='+id

也许不同的论点会给你不同的结果。

于 2013-07-10T02:41:10.553 回答
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;

感谢任何尝试过帮助的人

于 2013-07-10T04:05:49.533 回答