2012-02-28 3 views
1

Я использую функцию cURL из популярного комментария на php.net manuals, хотя аргумент функции, который должен указывать URL-адрес, не распознается и не инициируется. Теперь, когда я включаю CURLOPT_URL и указываю URL-адрес там в массиве, он отображает веб-страницу, и массив возвращает соответствующую информацию, но я не хочу, чтобы страница отображалась, просто верните информацию в массив, но curl_exec необходим в сумме всего этого и всегда отображает веб-страницу.cURL не подтверждает аргумент функции

Что я делаю неправильно?

//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

попробовать с помощью

CURLOPT_RETURNTRANSFER => false, 

, что я знаю, если returntransfer установлен в TRUE, веб-страница отображается в Брауэр. все фильтры и другое кодирование поступают после returntranfer, поэтому вы не можете просмотреть их

и не волнуйтесь, если он установлен в значение «ложь», все же завиток получит страницу и выполнит задачу, которую вы будете кодировать.

Надеясь Это поможет вам ..

+0

Я установил его в FALSE, и я все еще не могу подтвердить '$ url' – Tower

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>'; 
Смежные вопросы