cURL无法确认函数参数
问题描述:
虽然用于指定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);
答
试试,如果returntransfer设置为TRUE,该网页将显示在布劳尔。所有的过滤器和其他编码都是在returntranfer之后出现的,所以你无法查看它们
并且不用担心,如果它设置为false,那么curl会得到页面,并且将执行任务,无论你将要编码什么。
希望这将帮助你..
答
试试这个,看看它是否你想要做什么。我并没有真正改变这一点,只是重构了代码,使其更易于阅读,并添加了一些更具描述性/可读性的注释来解释所有事情。我在哪里改变了一些东西,有评论解释我改变了原因。
<?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>';
我将它设置为'FALSE',我仍然无法确认'$ url' – Tower 2012-02-28 18:03:05