2014-12-03 167 views
1
<?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代码,当我回声$页我得到以下警告和错误,以及没有从请求的网址获取任何数据。未使用cUrl从URL获取数据?

警告:

警告:curl_init()预计参数1是字符串,资源给定用C :\ XAMPP \ htdocs中\ CSE391 \ curl.php在线路36上

警告:curl_setopt_array ():提供的参数是不是在C有效的卷曲 手柄资源:\ XAMPP \ htdocs中\ CSE391 \ curl.php上线37

警告:curl_exec()预计参数1是资源,在 ç空给出:\ XAMPP \ htdocs中\ CSE391 \ curl.php上线38

警告:curl_errno()预计参数1是资源,NULL给出 在C:\ XAMPP \ htdocs中\ CSE391 \ curl.php第39行上

警告:curl_error()预计参数1为资源,空给定用C :\ XAMPP \ htdocs中\ CSE391 \ curl.php第40行

警告:curl_getinfo()预计参数1是资源,空给定用C :\ XAMPP \ htdocs中\ CSE391 \ curl.php on line 41

警告:curl_close()期望参数1是资源,空给定用C :\ XAMPP \ htdocs中\ CSE391 \ curl.php第42行错误

+0

我想你应该在PHP使卷曲,看到了这个问题:http://stackoverflow.com/questions/1347146/how-to-enable-curl-in -php-xampp另请参阅:使用mysqli或PDO – NadirDev 2014-12-03 21:05:27

+0

其实我启用它,但得到相同的结果 – 2014-12-03 21:08:22

+0

您需要获取您的SQL查询结果..现在您只是传递一个资源。不是值 – DarkBee 2014-12-03 21:42:57

回答

1

的mysql_query返回一个结果对象,而不是结果的数据。你需要从结果集对象中得到例如fetch_array()每个结果行;这一结果行将有网址

看到http://php.net/manual/en/function.mysql-fetch-array.php

+0

是的,我做到了这一点,但仍然有警告和错误 – 2014-12-03 21:16:21

+0

如果你这样做,请编辑你的问题,以显示你正在运行的代码。我们只能调试我们可以看到的代码。 – Andras 2014-12-03 21:23:39

+0

这是正确的。 OP不从查询结果中获取数据。此时它只是一种资源 – DarkBee 2014-12-03 21:43:41