确认是否安装了CURL扩展
Linux下命令:
1
2
3
4
5
|
[root@fengniu020 ~]# php -i | grep -i curl
Additional .ini files parsed => /etc/php.d/curl.ini,
curl
cURL support => enabled
cURL Information => 7.19.7
|
curl操作步骤解析:
CURL实例
1.一个简单的curl,抓取百度首页
2.下载一个网页并把内容中的“百度”替换为“摆渡”之后输出
3.调用WebService
一个简单的curl,抓取百度首页
1
2
3
4
5
|
<?php
$curl =curl_init( 'http://www.zzvips.com' );
curl_exec( $curl );
curl_close( $curl );
?>
|
下载一个网页并把内容中的“百度”替换为“摆渡”之后输出
1
2
3
4
5
6
7
8
9
10
11
|
<?php
/**
* 实例描述:在网络上下载一个网页并把内容中的“百度”替换为“摆渡”之后输出
*/
$curlobj = curl_init(); // 初始化
curl_setopt( $curlobj , CURLOPT_URL, "http://www.baidu.com" ); // 设置访问网页的URL
curl_setopt( $curlobj , CURLOPT_RETURNTRANSFER, true); // 执行之后不直接打印出来
$output =curl_exec( $curlobj ); // 执行
curl_close( $curlobj ); // 关闭cURL
echo str_replace ( "百度" , "摆渡" , $output );
?>
|
调用WebService
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?php
/**
* 实例描述:通过调用WebService查询北京的当前天气
* 下方接口,免费用户24小时内访问是有限制的,需要存储信息
*/
$data = 'theCityName=北京' ;
//$data = 'theCityName=北京&';//多个用&号连接
$curlobj = curl_init();
curl_setopt( $curlobj , CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName" );
curl_setopt( $curlobj , CURLOPT_HEADER, 0);
curl_setopt( $curlobj , CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $curlobj , CURLOPT_POST, 1); //POST方式
curl_setopt( $curlobj , CURLOPT_POSTFIELDS, $data );
curl_setopt( $curlobj , CURLOPT_HTTPHEADER, array ( "application/x-www-form-urlencoded; charset=utf-8" ,
"Content-length: " . strlen ( $data )
)); //HTTP请求头
curl_setopt ( $curlobj , CURLOPT_USERAGENT, $_SERVER [ 'HTTP_USER_AGENT' ]);
$rtn = curl_exec( $curlobj );
if (!curl_errno( $curlobj )){
// $info = curl_getinfo($curlobj);
// print_r($info);
echo $rtn ;
} else {
echo 'Curl error: ' . curl_error( $curlobj );
}
curl_close( $curlobj );
?>
|
从FTP服务器下载一个文件到本地
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?php
/**
* 代码实例-PHP-cURL实战
* 实例描述:从FTP服务器下载一个文件到本地
*/
$curlobj = curl_init();
curl_setopt( $curlobj , CURLOPT_URL, "ftp://192.168.1.100/downloaddemo.txt" );
curl_setopt( $curlobj , CURLOPT_HEADER, 0);
curl_setopt( $curlobj , CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $curlobj , CURLOPT_TIMEOUT, 300); // times out after 300s
curl_setopt( $curlobj , CURLOPT_USERPWD, "peter.zhou:123456" ); //FTP用户名:密码
// Sets up the output file
$outfile = fopen ( 'dest.txt' , 'wb' ); //保存到本地的文件名
curl_setopt( $curlobj , CURLOPT_FILE, $outfile );
$rtn = curl_exec( $curlobj );
fclose( $outfile );
if (!curl_errno( $curlobj )){
// $info = curl_getinfo($curlobj);
// print_r($info);
echo "RETURN: " . $rtn ;
} else {
echo 'Curl error: ' . curl_error( $curlobj );
}
curl_close( $curlobj );
?>
|
把本地文件上传到FTP服务器上
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?php
/**
* 代码实例-PHP-cURL实战
* 实例描述:把本地文件上传到FTP服务器上
*/
$curlobj = curl_init();
$localfile = 'ftp01.php' ; //需要上传的文件
$fp = fopen ( $localfile , 'r' );
curl_setopt( $curlobj , CURLOPT_URL, "ftp://192.168.1.100/ftp01_uploaded.php" );//上传后保存的文件名
curl_setopt( $curlobj , CURLOPT_HEADER, 0);
curl_setopt( $curlobj , CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $curlobj , CURLOPT_TIMEOUT, 300); // times out after 300s
curl_setopt( $curlobj , CURLOPT_USERPWD, "peter.zhou:123456" ); //FTP用户名:密码
curl_setopt( $curlobj , CURLOPT_UPLOAD, 1);
curl_setopt( $curlobj , CURLOPT_INFILE, $fp ); //传输打开的文件
curl_setopt( $curlobj , CURLOPT_INFILESIZE, filesize ( $localfile )); //上传的文件大小
$rtn = curl_exec( $curlobj );
fclose( $fp );
if (!curl_errno( $curlobj )){
echo "Uploaded successfully." ;
} else {
echo 'Curl error: ' . curl_error( $curlobj );
}
curl_close( $curlobj );
?>
|
下载网络上面的一个HTTPS的资源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php
/**
* 代码实例-PHP-cURL实战
* 实例描述:下载网络上面的一个HTTPS的资源
*/
$curlobj = curl_init(); // 初始化
curl_setopt( $curlobj , CURLOPT_URL, "https://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.js" ); // 设置访问网页的URL
curl_setopt( $curlobj , CURLOPT_RETURNTRANSFER, true); // 执行之后不直接打印出来
// 设置HTTPS支持
date_default_timezone_set( 'PRC' ); // 使用Cookie时,必须先设置时区
curl_setopt( $curlobj , CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查从证书中检查SSL加密算法是否存在,设置为0就是终止从服务器端进行验证
curl_setopt( $curlobj , CURLOPT_SSL_VERIFYHOST, 2); //
$output =curl_exec( $curlobj ); // 执行
curl_close( $curlobj ); // 关闭cURL
echo $output ;
?>
|
以上这篇浅谈PHP中的数据传输CURL就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。