温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在PHP中使用cURL库

发布时间:2021-04-01 16:45:42 来源:亿速云 阅读:208 作者:Leah 栏目:开发技术

如何在PHP中使用cURL库?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

基本例子

一般流程:

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

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

 if (isDomainAvailible('http://gz.itownet.cn'))    {      echo "Up and running!";    }    else    {      echo "Woops, nothing found there.";    }      //returns true, if domain is availible, false if not    function isDomainAvailible($domain)    {      //check, if a valid url is provided      if(!filter_var($domain, FILTER_VALIDATE_URL))      {        return false;      }        //initialize curl      $curlInit = curl_init($domain);      curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);      curl_setopt($curlInit,CURLOPT_HEADER,true);      curl_setopt($curlInit,CURLOPT_NOBODY,true);      curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);        //get answer      $response = curl_exec($curlInit);        curl_close($curlInit);        if ($response) return true;        return false;    }

2、可以代替file_gecontents的操作

function file_get_contents_curl($url) {   $ch = curl_init();     curl_setopt($ch, CURLOPT_HEADER, 0);   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser.   curl_setopt($ch, CURLOPT_URL, $url);     $data = curl_exec($ch);   curl_close($ch);     return $data;  }

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

 function getImages($html) {   $matches = array();   $regex = '~https://cache.yisu.com/upload/information/20201209/266/40576~i';   preg_match_all($regex, $html, $matches);   foreach ($matches[1] as $img) {    saveImg($img);   }  }    function saveImg($name) {   $url = 'https://cache.yisu.com/upload/information/20201209/266/40577';   $data = get_data($url);   file_put_contents('photos/'.$name.'.jpg', $data);  }    $i = 1;  $l = 101;    while ($i < $l) {   $html = get_data('http://somedomain.com/id/'.$i.'/');   getImages($html);   $i += 1;  }

4、FTP应用

// open a file pointer  $file = fopen("/path/to/file", "r");    // the url contains most of the info needed  $url = "ftp://username:password@mydomain.com:21/path/to/new/file";    $ch = curl_init();    curl_setopt($ch, CURLOPT_URL, $url);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    // upload related options  curl_setopt($ch, CURLOPT_UPLOAD, 1);  curl_setopt($ch, CURLOPT_INFILE, $fp);  curl_setopt($ch, CURLOPT_INFILESIZE, filesize("/path/to/file"));    // set for ASCII mode (e.g. text files)  curl_setopt($ch, CURLOPT_FTPASCII, 1);    $output = curl_exec($ch);  curl_close($ch);

5、使用curl发送JSON数据

$data = array("name" => "Hagrid", "age" => "36");                                    $data_string = json_encode($data);                                               $ch = curl_init('http://api.local/rest/users');                                     curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                     curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                     curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                         'Content-Type: application/json',                                            'Content-Length: ' . strlen($data_string))                                      );                                                               $result = curl_exec($ch);

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI