没有使用cUrl从URL获取数据?

时间:2014-12-03 21:00:30

标签: php curl web-crawler

<?php
    $con=mysql_connect("localhost","root","");
    mysql_select_db("google",$con);

    $sql="SELECT urlname FROM url WHERE id=12";
    $url=mysql_query($sql);
    $result = get_web_page( $url );

    if ( $result['errno'] != 0 ) {
        echo "errror";
    }

    if ( $result['errmsg'] != 200 ) {
        echo "error";
    }

    $page = $result['content'];
    while ($row = mysql_fetch_array($page)) {
        printf($row[0]);  
    }

    function get_web_page( $url1 )
    {
        $options = array(
            CURLOPT_RETURNTRANSFER => true,     // return web page
            CURLOPT_HEADER         => false,    // don't return headers
            CURLOPT_FOLLOWLOCATION => true,     // follow redirects
            CURLOPT_ENCODING       => "",       // handle all encodings
            CURLOPT_USERAGENT      => "spider", // who am i
            CURLOPT_AUTOREFERER    => true,     // set referer on redirect
            CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
            CURLOPT_TIMEOUT        => 120,      // timeout on response
            CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
        );

        $ch = curl_init( $url1 );
        // create a new cURL resource
        //$ch    = curl_init();

        // set URL and other appropriate options
        curl_setopt($ch, CURLOPT_URL,$url1);
        curl_setopt($ch, CURLOPT_HEADER, 0);

        curl_setopt_array( $ch, $options );
        $content = curl_exec( $ch );
        $err     = curl_errno( $ch );
        $errmsg  = curl_error( $ch );
        $header  = curl_getinfo( $ch );
        curl_close( $ch );

        $header['errno']   = $err;
        $header['errmsg']  = $errmsg;
        $header['content'] = $content;
        return $header;
    }
?>                      

这是我的PHP代码,当我回显 $ page 时,我收到了警告和错误,并且没有从请求的网址获取任何数据。

警告:

  

警告:curl_init()期望参数1为字符串,给定资源   在第36行的C:\ xampp \ htdocs \ CSE391 \ curl.php

     

警告:curl_setopt_array():提供的参数不是有效的cURL   在第37行处理C:\ xampp \ htdocs \ CSE391 \ curl.php中的资源

     

警告:curl_exec()期望参数1为resource,null为null   第38行的C:\ xampp \ htdocs \ CSE391 \ curl.php

     

警告:curl_errno()期望参数1为resource,null给定   在第39行的C:\ xampp \ htdocs \ CSE391 \ curl.php

     

警告:curl_error()期望参数1为resource,null给定   在第40行的C:\ xampp \ htdocs \ CSE391 \ curl.php

     

警告:curl_getinfo()期望参数1为resource,null给定   在第41行的C:\ xampp \ htdocs \ CSE391 \ curl.php

     

警告:curl_close()期望参数1为资源,给定为null   在第42行的C:\ xampp \ htdocs \ CSE391 \ curl.php错误

1 个答案:

答案 0 :(得分:1)

mysql_query返回结果集对象,而不是结果数据。你需要从结果集对象中得到fetch_array()每个结果行;结果行将包含url

请参阅http://php.net/manual/en/function.mysql-fetch-array.php