1.概念
2.使用场景
3.PHP 中使用 cURL
4.实战
<?php
//1.初始化
$curl = curl_init('http://www.baidu.com');
//2.执行
$output = curl_exec($curl);
//3.关闭
curl_close($curl);
echo $output;
<?php
//1.初始化
$curl = curl_init('http://www.baidu.com');
curl_setopt($curl,CURLOPT_URL,'http://www.baidu.com');
//将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。这样可以对内容进行处理
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
//2.执行
$output = curl_exec($curl);//一般情况下,执行后就打印出来了
//3.关闭
curl_close($curl);
echo str_replace('百度','练习12',$output);
下面通过 POST 获取天气服务:
<?php
$data = 'theRegionCode=北京';
$curlObj = curl_init();
$url = 'http://www.webxml.com.cn/WebServices/WeatherWS.asmx/getSupportCityString';
curl_setopt($curlObj,CURLOPT_URL,$url);//需要获取的URL地址,也可以在curl_init()函数中设置
curl_setopt($curlObj,CURLOPT_HEADER,0);//启用时会将头文件的信息作为数据流输出
curl_setopt($curlObj,CURLOPT_RETURNTRANSFER,1);//不要直接打印
//启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样
curl_setopt($curlObj,CURLOPT_POST,1);
//全部数据使用HTTP协议中的"POST"操作来发送。要发送文件,在文件名前面加上@前缀并使用完整路径。
//这个参数可以通过urlencoded后的字符串类似'para1=val1¶2=val2&...'或使用一个以字段名为键值,
//字段数据为值的数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data。
curl_setopt($curlObj,CURLOPT_POSTFIELDS,$data);
//一个用来设置HTTP头字段的数组。使用如下的形式的数组进行设置:
// array('Content-type: text/plain', 'Content-length: 100')
curl_setopt($curlObj,CURLOPT_HTTPHEADER,array(
'application/x-www-form-urlencoded;charset=utf-8',
'Content-length:'.strlen($data)
));
$content = curl_exec($curlObj);
if (!curl_errno($curlObj)) {
echo $content;
} else {
echo 'cURL error : ' . curl_error($curlObj);
}
curl_close($curlObj);
提供天气查询的 webservices :
http://www.webxml.com.cn/WebServices/WeatherWS.asmx?op=getSupportCityString