2012-02-28 31 views
1

虽然用于指定URL的函数的参数未被识别或启动,但我正在使用来自php.net manuals的热门评论的cURL函数。现在,当我启用CURLOPT_URL并指定数组中的URL时,它将显示网页,并且数组会返回相应的信息,但我不希望显示网页,只需返回数组中的信息,但需要curl_exec总之它总是显示网页。cURL无法确认函数参数

我在做什么错了?

使用

CURLOPT_RETURNTRANSFER => false, 

我知道

//defines the function get_web_page 
$url = "http://ulrichzukowebtv.comli.com"; 
    function get_web_page($url) 
{ 
    $options = array(
     //CURLOPT_URL => 'http://ulrichzukowebtv.comli.com', 

     CURLOPT_RETURNTRANSFER => true,  // return web page 

     CURLOPT_HEADER   => false, // don't return headers 

     CURLOPT_FOLLOWLOCATION => true,  // follow redirects 

     CURLOPT_ENCODING  => "",  // handle compressed 

     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(); 

    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; 

} //end defining function 


$curl_data = "var1=60&var2=test"; 

//call the function 
$response = get_web_page($url, $curl_data); 

print '<pre>'; 

//Returns an array containing all the CURL flags specified 
print_r($response); 

回答

1

试试,如果returntransfer设置为TRUE,该网页将显示在布劳尔。所有的过滤器和其他编码都是在returntranfer之后出现的,所以你无法查看它们

并且不用担心,如果它设置为false,那么curl会得到页面,并且将执行任务,无论你将要编码什么。

希望这将帮助你..

+0

我将它设置为'FALSE',我仍然无法确认'$ url' – Tower 2012-02-28 18:03:05

0

试试这个,看看它是否你想要做什么。我并没有真正改变这一点,只是重构了代码,使其更易于阅读,并添加了一些更具描述性/可读性的注释来解释所有事情。我在哪里改变了一些东西,有评论解释我改变了原因。

<?php 

    function get_web_page ($url, $params = NULL) { 

    // Add a query string to the URL if one was supplied. 
    // Previously your second argument $curl_data was unhandled and ignored. 
    if (is_array($params) || is_object($params)) { 
     // Build a query string from an associative array or object and append to the URL 
     $url .= '?'.http_build_query($params); 
    } else if ($params !== NULL) { 
     // Append scalar values directly to the URL 
     $url .= '?'.$params; 
    } 

    // Define the options for cURL 
    $options = array (
     CURLOPT_URL   => $url,  // URL we will be loading 
     CURLOPT_RETURNTRANSFER => true,  // Return data instead of outputting it 
     CURLOPT_HEADER   => false, // Omit headers from the return value 
     CURLOPT_FOLLOWLOCATION => true,  // Follow redirects 
     CURLOPT_ENCODING  => "",  // Handle compressed 
     CURLOPT_USERAGENT  => "spider", // Tell the server who we are 
     CURLOPT_AUTOREFERER => true,  // Set referer on redirect 
     CURLOPT_CONNECTTIMEOUT => 120,  // Timeout on connect (2 minutes is a very long time...!) 
     CURLOPT_TIMEOUT  => 120,  // Timeout on response (2 minutes is a very long time...!) 
     CURLOPT_MAXREDIRS  => 10  // Stop after 10 redirects 
    ); 

    // Initialise cURL and set the options we defined above 
    $ch = curl_init(); 
    curl_setopt_array($ch, $options); 

    // Make the request 
    $content = curl_exec($ch); 

    // Fetch the result info into an array 
    $result = array(); 
    $result['options'] = $options;   // The options used for the request 
    $result['content'] = $content;   // The body of the response from the server 
    $result['header'] = curl_getinfo($ch); // Information about the request, including some headers 
    $result['errno'] = curl_errno($ch); // The numeric error code of the result 
    $result['errmsg'] = curl_error($ch); // The textual error of the result 

    // Close the curl handle 
    curl_close($ch); 

    // Return the result info 
    return $result; 

    } // End function definition 

    // Define the URL to load 
    $url = "http://ulrichzukowebtv.comli.com/"; // You need the trailing forward slash if you are loading the root of the domain 

    // Define the GET parameters to pass 
    // We'll define this as an array to make if easier to read 
    $params = array (
    'var1' => 60, 
    'var2' => 'test' 
); 

    // Call the function 
    $response = get_web_page($url, $params); 

    // Show the result - if you don't want the page to be output, remove these three lines 
    print '<pre>'; 
    print_r($response); 
    print '<pre>';