一波PHP中cURL库的常见用法代码示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-08-01 20:28:46 浏览: 评论:0
这篇文章主要介绍了一波PHP中cURL库的常见用法代码示例,类Unix世界的cURL内置于PHP中,使Linux和Mac OS用户倍感亲切,需要的朋友可以参考下
php 的CURL是不错的功能,下面收藏几段不错的片段
0、基本例子
一般流程:
- $to_url=$_GET['url'];
- print_r($_GET);
- if(substr($to_url,0,1)=='/'){
- $to_url="http://www.phpfensi.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 = '~http://somedomain.com/images/(.*?)\.jpg~i';
- preg_match_all($regex, $html, $matches);
- foreach ($matches[1] as $img) {
- saveImg($img);
- }
- }
- function saveImg($name) {
- $url = 'http://somedomain.com/images/'.$name.'.jpg';
- $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);
Tags: cURL库
相关文章
- ·PHP的cURL库实现网页抓取例子介绍(2015-04-15)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)