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

一波PHP中cURL库的常见用法代码示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-01 20:28:46 浏览: 评论:0 

这篇文章主要介绍了一波PHP中cURL库的常见用法代码示例,类Unix世界的cURL内置于PHP中,使Linux和Mac OS用户倍感亲切,需要的朋友可以参考下

php 的CURL是不错的功能,下面收藏几段不错的片段

0、基本例子

一般流程:

  1. $to_url=$_GET['url']; 
  2. print_r($_GET); 
  3. if(substr($to_url,0,1)=='/'){ 
  4.  $to_url="http://www.phpfensi.com".$to_url
  5. echo $to_url
  6. //初始化 
  7. $ch = curl_init(); 
  8. //设置选项,包括URL 
  9. curl_setopt($ch, CURLOPT_URL, $to_url); 
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  11. curl_setopt($ch, CURLOPT_HEADER, 0); 
  12. //执行并获取HTML文档内容 
  13. $output = curl_exec($ch); 
  14. $output=preg_replace("#href=\"#","href=\"http://in2.qq-ex.com/amazon.php?url=",$output); 
  15. // 释放curl句柄 
  16. curl_close($ch); 
  17. echo $output
  18. // 指定代理地址 
  19. curl_setopt($ch, CURLOPT_PROXY, '11.11.11.11:8080'); 
  20. // 如果需要的话,提供用户名和密码 
  21. curl_setopt($ch, CURLOPT_PROXYUSERPWD,'user:pass'); 

1、测试网站是否运行正常

  1. if (isDomainAvailible('http://gz.itownet.cn'))  
  2.  {  
  3.    echo "Up and running!";  
  4.  }  
  5.  else 
  6.  {  
  7.    echo "Woops, nothing found there.";  
  8.  }  
  9.  
  10.  //returns true, if domain is availible, false if not  
  11.  function isDomainAvailible($domain)  
  12.  {  
  13.    //check, if a valid url is provided  
  14.    if(!filter_var($domain, FILTER_VALIDATE_URL))  
  15.    {  
  16.      return false;  
  17.    }  
  18.  
  19.    //initialize curl  
  20.    $curlInit = curl_init($domain);  
  21.    curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);  
  22.    curl_setopt($curlInit,CURLOPT_HEADER,true);  
  23.    curl_setopt($curlInit,CURLOPT_NOBODY,true);  
  24.    curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);  
  25.  
  26.    //get answer  
  27.    $response = curl_exec($curlInit);  
  28.  
  29.    curl_close($curlInit);  
  30.  
  31.    if ($responsereturn true;  
  32.  
  33.    return false;  
  34.  }  

2、可以代替file_gecontents的操作

  1. function file_get_contents_curl($url) {  
  2.  $ch = curl_init();  
  3.    
  4.  curl_setopt($ch, CURLOPT_HEADER, 0);  
  5.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser.  
  6.  curl_setopt($ch, CURLOPT_URL, $url);  
  7.    
  8.  $data = curl_exec($ch);  
  9.  curl_close($ch);  
  10.    
  11.  return $data;  
  12. }  

3、保存某个网站下的所有图片

  1. function getImages($html) {  
  2.  $matches = array();  
  3.  $regex = '~http://somedomain.com/images/(.*?)\.jpg~i';  
  4.  preg_match_all($regex$html$matches);  
  5.  foreach ($matches[1] as $img) {  
  6.   saveImg($img);  
  7.  }  
  8. }  
  9.    
  10. function saveImg($name) {  
  11.  $url = 'http://somedomain.com/images/'.$name.'.jpg';  
  12.  $data = get_data($url);  
  13.  file_put_contents('photos/'.$name.'.jpg'$data);  
  14. }  
  15.    
  16. $i = 1;  
  17. $l = 101;  
  18.    
  19. while ($i < $l) {  
  20.  $html = get_data('http://somedomain.com/id/'.$i.'/');  
  21.  getImages($html);  
  22.  $i += 1;  
  23. }  

4、FTP应用

  1. // open a file pointer  
  2. $file = fopen("/path/to/file""r");  
  3.    
  4. // the url contains most of the info needed  
  5. $url = "ftp://username:password@mydomain.com:21/path/to/new/file";  
  6.    
  7. $ch = curl_init();  
  8.    
  9. curl_setopt($ch, CURLOPT_URL, $url);  
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  11.    
  12. // upload related options  
  13. curl_setopt($ch, CURLOPT_UPLOAD, 1);  
  14. curl_setopt($ch, CURLOPT_INFILE, $fp);  
  15. curl_setopt($ch, CURLOPT_INFILESIZE, filesize("/path/to/file"));  
  16.    
  17. // set for ASCII mode (e.g. text files)  
  18. curl_setopt($ch, CURLOPT_FTPASCII, 1);  
  19.    
  20. $output = curl_exec($ch);  
  21. curl_close($ch);  

5、使用curl发送JSON数据

  1. $data = array("name" => "Hagrid""age" => "36");                                    
  2. $data_string = json_encode($data);                                            
  3.     
  4. $ch = curl_init('http://api.local/rest/users');                                     
  5. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                     
  6. curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                   
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                     
  8. curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                       
  9.   'Content-Type: application/json',                                          
  10.   'Content-Length: ' . strlen($data_string))                                      
  11. );                                                            
  12.     
  13. $result = curl_exec($ch);

Tags: cURL库

分享到:

相关文章