AJAX。 PHP。卷曲。 Ajax请求到站点,使用另一种编码

时间:2013-07-10 01:44:36

标签: php jquery ajax curl

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

我做错了什么? 抱歉英文不好

2 个答案:

答案 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,谁试过帮助