当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-10 13:31:07 浏览: 评论:0 

curl实现get提交数据,代码如下:

  1. // 初始化一个 cURL 对象 
  2. $curl = curl_init(); 
  3. // 设置你需要抓取的URL 
  4. curl_setopt($curl, CURLOPT_URL, 'http://www.phpfensi.com'); 
  5. // 设置header, 最后一个参数是0表示返回值不带有header,1表示带有header 
  6. curl_setopt($curl, CURLOPT_HEADER, 0); 
  7. // 设置浏览器的特定header,可选,如果目标网站有要求的话 
  8. curl_setopt($ch, CURLOPT_HTTPHEADER, array
  9. "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)'}"
  10. "Accept-Language: {en-us,en;q=0.5}" 
  11. )); 
  12. //或者只设置user-agent,可选,如果目标网站有要求的话 
  13. 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"); 
  14. // 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上,1表示保存到字符串 
  15. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
  16. // 页面内容不需要时,设置为1. 默认为0 
  17. curl_setopt($ch, CURLOPT_NOBODY, 1); 
  18. // 运行cURL,请求网页,保存在$data 
  19. $data = curl_exec($curl); 
  20. // 关闭URL请求 
  21. curl_close($curl); 
  22. //检查错误 
  23. //比较的时候我们用的是“=== FALSE”,而非“== FALSE”,因为我们得区分’空输出‘和’布尔值FALSE‘ 
  24. if ($output === FALSE) { 
  25. echo "cURL Error: " . curl_error($ch); 
  26. //可以获取信息 
  27. $info = curl_getinfo($ch); 
  28. echo '获取'$info['url'] . '耗时'$info['total_time'] . '秒'
  29. /* ...返回的数组中包括了以下信息: 
  30. “url” //资源网络地址 
  31. “content_type” //内容编码 
  32. “http_code” //HTTP状态码 
  33. “header_size” //header的大小 
  34. “request_size” //请求的大小 
  35. “filetime” //文件创建时间 
  36. “ssl_verify_result” //SSL验证结果 
  37. “redirect_count” //跳转技术 
  38. “total_time” //总耗时 
  39. “namelookup_time” //DNS查询耗时 
  40. “connect_time” //等待连接耗时 
  41. “PRetransfer_time” //传输前准备耗时 
  42. “size_upload” //上传数据的大小 
  43. “size_download” //下载数据的大小 
  44. “speed_download” //下载速度 
  45. “speed_upload” //上传速度 
  46. “download_content_length”//下载内容的长度 
  47. “upload_content_length” //上传内容的长度 
  48. “starttransfer_time” //开始传输的时间 
  49. “redirect_time”//重定向耗时 
  50. */  

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

  1. //extract data from the post 
  2. extract($_POST) ;  
  3. //set POST variables 
  4. $url = 'http://www.phpfensi.com' ; 
  5. $fields = array
  6.             'lname'=>urlencode($last_name) , 
  7.             'fname'=>urlencode($first_name) , 
  8.             'title'=>urlencode($title) , 
  9.             'company'=>urlencode($institution) , 
  10.             'age'=>urlencode($age) , 
  11.             'email'=>urlencode($email) , 
  12.             'phone'=>urlencode($phone
  13.         );  
  14. //url-ify the data for the POST 
  15. foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&' ; } 
  16. rtrim($fields_string ,'&') ; 
  17. //open connection 
  18. $ch = curl_init() ; 
  19. //set the url, number of POST vars, POST data 
  20. curl_setopt($ch, CURLOPT_URL,$url) ; 
  21. curl_setopt($ch, CURLOPT_POST,count($fields)) ; 
  22. curl_setopt($ch, CURLOPT_POSTFIELDS,$fields_string) ; 
  23. //execute post 
  24. $result = curl_exec($ch) ; 
  25. //close connection 
  26. curl_close($ch) ;

Tags: curl提交数据 POST提交数据

分享到: