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

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

0、基本例子
一般流程:

$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 = '~yun_qi_img/(.&~i';
 preg_match_all($regex, $html, $matches);
 foreach ($matches[1] as $img) {
  saveImg($img);
 }
} 

function saveImg($name) {
 $url = 'yun_qi_img/'.$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); 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索curl
php
curl推送示例、百度curl推送示例、curl示例、curl推送示例详细步骤、curl请求示例,以便于您获取更多的相关知识。

时间: 2024-10-20 11:41:09

一波PHP中cURL库的常见用法代码示例_php实例的相关文章

php中的mongodb select常用操作代码示例_php实例

前面说到了mongodb安装,配置,集群,以及php的插入与更新等,请参考:mongodb. 下面说一下,mongodb select的常用操作 测试数据: 复制代码 代码如下: { "_id" : 1, "title" : "红楼梦", "auther" : "曹雪芹", "typeColumn" : "test", "money" : 80,

PHP5中GD库生成图形验证码(有汉字)_php实例

利用PHP5中GD库生成图形验证码   类似于下面这样 1.利用GD库函数生成图片,并在图片上写指定字符 imagecreatetruecolor 新建一个真彩色图像 imagecolorallocate 为一幅图像分配颜色(调色板) imagestring 绘制字符 imageline 绘制线条 imagesetpixel 打像素点 2.输出图片 imagejpeg($img); PHP实现过程,代码中注释详细,这里不做过多解释 verify.php 复制代码 代码如下: <?php //1.

Laravel4中的Validator验证扩展用法详解_php实例

本文实例讲述了Laravel4中的Validator验证扩展用法.分享给大家供大家参考,具体如下: 不管写接口还是写web页面,实质都是传入参数,然后进行业务逻辑,然后再输出具体内容.所以,对参数的验证是不可避免的一个环节,比如传过来的email是不是为空,是不是合法的email格式?laravel已经为phper想到简化这种逻辑的办法了.就是Validator. Validator的使用 制造一个验证器 validator使用Validator::make可以制造一个验证器.然后使用验证器判断

laravel中的错误与日志用法详解_php实例

本文实例讲述了laravel中的错误与日志用法.分享给大家供大家参考,具体如下: 日志 laravel中的日志是基于monolog而封装的.laravel在它上面做了几个事情: ① 把monolog中的addInfo等函数简化成为了info这样的函数 ② 增加了useFiles和useDailyFiles两个参数,使得做日志管理和切割变的容易了 ③ 如果要调用monolog的方法需要调用callMonolog函数 好了,看下下面几个需求怎么实现: 将不同的日志信息存放到不同的日志中去 这个需求很

自己写的php curl库实现整站克隆功能_php实例

有时候经常会用到一些在线手册,比如国内或国外的,有些是访问速度慢,有些是作者直接吧网站关闭了,有些是服务器总是宕机,所以还是全盘克隆到自己服务器比较爽. 库特点: 给定一初始连接,初始链接以下的层级所有文件会拷贝到本地. 多次克隆可以配置是否覆盖. 可以配置是否下载图片. 所有链接替换为相对链接,所以可以随便rewrite. 绝对不会出现文件覆盖等问题. 最NB的特点是,没有比这更NB的库了. SVN:http://svn.phpdr.net/repos/ares/php/library/tru

PHP中模拟链表和链表的基本操作示例_php实例

模拟链表: <?php /** * PHP实现链表的基本操作 */ class linkList { /** * 姓名 * @var string */ public $name = ''; /** * 编号 * @var int */ public $id = 0; /* * 引用下一个对象 */ public $next = null; /** * 构造函数初始化数据 * @param int $id * @param string $name */ public function __co

PHP实现Javascript中的escape及unescape函数代码分享_php实例

这个类相当好用.作用么,PHP做JSON传递GBK字符,比如中文,日文,韩文神马的Unicode最合适不过了.. <?php classcoding { //模仿JAVASCRIPT的ESCAPE和UNESCAPE函数的功能 functionunescape($str) { $text=preg_replace_callback("/%u[0-9A-Za-z]{4}/",array( &$this, 'toUtf8' ),$str); returnmb_convert_e

PHP获取网站中各文章的第一张图片的代码示例_php实例

<?php $temp=mt_rand(1,4); $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/"; $content = $article->Content; //文章内容 preg_match_all($pattern,$content,$matchContent); if(isset($matchContent[1][0]

Python中Requests库的高级用法

前面讲了Python的urllib库的使用和方法,Python网络数据采集Urllib库的基本使用 ,Python的urllib高级用法 . 今天我们来学习下Python中Requests库的用法. Requests库的安装 利用 pip 安装,如果你安装了pip包(一款Python包管理工具,不知道可以百度哟),或者集成环境,比如Python(x,y)或者anaconda的话,就可以直接使用pip安装Python的库. $ pip install requests 安装完成之后,下面来看一下基