欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP利用curl实现get与POST提交数据

程序员文章站 2022-04-27 09:06:07
...
curl实现get提交数据,代码如下:
// 初始化一个 cURL 对象 
$curl = curl_init(); 
// 设置你需要抓取的URL 
curl_setopt($curl, CURLOPT_URL, 'http://www.phprm.com'); 
// 设置header, 最后一个参数是0表示返回值不带有header,1表示带有header 
curl_setopt($curl, CURLOPT_HEADER, 0); 
// 设置浏览器的特定header,可选,如果目标网站有要求的话 
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 
"User-Agent: {'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)'}", 
"Accept-Language: {en-us,en;q=0.5}" 
)); 
//或者只设置user-agent,可选,如果目标网站有要求的话 
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"); 
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上,1表示保存到字符串 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
// 页面内容不需要时,设置为1. 默认为0 
curl_setopt($ch, CURLOPT_NOBODY, 1); 
// 运行cURL,请求网页,保存在$data 
$data = curl_exec($curl); 
// 关闭URL请求 
curl_close($curl); 
//检查错误 
//比较的时候我们用的是"=== FALSE",而非"== FALSE",因为我们得区分'空输出'和'布尔值FALSE' 
if ($output === FALSE) { 
    echo "cURL Error: " . curl_error($ch); 
} 
//可以获取信息 
$info = curl_getinfo($ch); 
echo '获取'. $info['url'] . '耗时'. $info['total_time'] . '秒'; 
/* ...返回的数组中包括了以下信息: 
"url" //资源网络地址 
"content_type" //内容编码 
"http_code" //HTTP状态码 
"header_size" //header的大小 
"request_size" //请求的大小 
"filetime" //文件创建时间 
"ssl_verify_result" //SSL验证结果 
"redirect_count" //跳转技术 
"total_time" //总耗时 
"namelookup_time" //DNS查询耗时 
"connect_time" //等待连接耗时 
"PRetransfer_time" //传输前准备耗时 
"size_upload" //上传数据的大小 
"size_download" //下载数据的大小 
"speed_download" //下载速度 
"speed_upload" //上传速度 
"download_content_length"//下载内容的长度 
"upload_content_length" //上传内容的长度 
"starttransfer_time" //开始传输的时间 
"redirect_time"//重定向耗时 
*/

curl实现POST提交数据,http的post实现,代码如下:

//extract data from the post 
extract($_POST) ;  
//set POST variables 
$url = 'http://www.phprm.com' ; 
$fields = array( 
    'lname'=>urlencode($last_name) , 
    'fname'=>urlencode($first_name) , 
    'title'=>urlencode($title) , 
    'company'=>urlencode($institution) , 
    'age'=>urlencode($age) , 
    'email'=>urlencode($email) , 
    'phone'=>urlencode($phone) 
);  
//url-ify the data for the POST 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&' ; } 
rtrim($fields_string ,'&') ; 
//open connection 
$ch = curl_init() ; 
//set the url, number of POST vars, POST data 
curl_setopt($ch, CURLOPT_URL,$url) ; 
curl_setopt($ch, CURLOPT_POST,count($fields)) ; 
curl_setopt($ch, CURLOPT_POSTFIELDS,$fields_string) ; 
//execute post 
$result = curl_exec($ch) ; 
//close connection 
curl_close($ch) ;


永久链接:

转载随意!带上文章地址吧。