Hello,嗨,大家好!!!

这里是17分享资源网

今天,我想和大家分享-,PHP中的数据传输神器curl的文章,感谢您宝贵的时间阅读,让这一刻属于我们吧!

资源介绍


img src=”https://www.17fenxiang.cn/lxm/81ffb1dfb47fca2beaeb5f3339b6ee60.jpg” alt=”PHP中的数据传输神器curl” />

img alt=”” src=”https://imgxk1.top1sheji.com/180704/b3e4ae290b87f63c4f1fa5a895b0a7a7.jpg” style=”width: 667px; height: 377px;”>

什么是cURL?

官方是这样解释的:使用URL语法传输数据的命令行工具。 

cURL:我不生产资源,我只是资源的搬运工。。。 

img alt=”这里写图片描述” src=”https://img-blog.csdn.net/20160505133811026″ style=”box-sizing: border-box; outline: 0px; margin: 24px 0px; max-width: 100%; word-break: break-all; cursor: zoom-in;” title=””>

cURL的使用场景

  • 网页资源
    • 编写网页爬虫
  • WebService数据接口资源
    • 动态获取接口数据,比如天气,号码归属地等等
  • FTP服务器里面的文件资源
    • 下载FTP服务器里面的文件
  • 其他资源
    • 所有网络上的资源都可以用cURL访问和下载到

检查php是否可以使用cURL

img alt=”这里写图片描述” src=”https://img-blog.csdn.net/20160505135120203″ style=”box-sizing: border-box; outline: 0px; margin: 24px 0px; max-width: 100%; word-break: break-all; cursor: zoom-in;” title=””>

可以看到在我的Linux下是支持cURL的

在PHP中使用cURL

img alt=”这里写图片描述” src=”https://img-blog.csdn.net/20160505135446251″ style=”box-sizing: border-box; outline: 0px; margin: 24px 0px; max-width: 100%; word-break: break-all; cursor: zoom-in;” title=””>


cURL实战

  • 用cURL做一个简单的网页爬虫
  • 用cURL获取天气信息
  • 用cURL操作FTP服务器中的数据
  • 用cURL访问HTTPS资源

1.网页爬虫

抓取百度的首页

<?php
//初始化
$curl = curl_init("https://www.baidu.com");
//进行抓取
curl_exec($curl);
//关闭
curl_close($curl);
?>

执行这段程序看看会发生什么吧!没错,打开这个文件就打印出了百度的首页! 

img alt=”这里写图片描述” src=”https://img-blog.csdn.net/20160505141242320″ style=”box-sizing: border-box; outline: 0px; margin: 24px 0px; max-width: 100%; word-break: break-all; cursor: zoom-in;” title=””>

那么问题来了!如果我想把取过来的网页中百度两个字替换为牛逼该怎么做呢?

<?php
//初始化curl,但不传入网页信息
$curlobj = curl_init();
//传入网页信息
curl_setopt($curlobj, CURLOPT_URL, "https://www.baidu.com");
//设置获取之后先不打印出获取到的值,而是保存到一个变量里
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curlobj);
//关闭
curl_close();
//对网页内容进行替换
echo str_replace("百度", "牛逼", $output);
?>
 

执行这个文件看一下会发生什么吧!

2.获取天气信息

因为Webservice原因可能导致多次访问后不可用,这里说的只是一种方法,也可是使用百度天气api来获取天气信息哦。 

代码如下:

<?php 

$data = 'theCityName=北京';
$curlobj = curl_init();
curl_setopt($curlobj, CURLOPT_URL, "https://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");
curl_setopt($curlobj, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36');
curl_setopt($curlobj, CURLOPT_HEADER, 0);
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlobj, CURLOPT_POST, 1);
curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded;charset=utf-8",
    "Content-length: ".strlen($data)
    ));
$rtn = curl_exec($curlobj);
if(!curl_errno($curlobj)) {
    $xml = simplexml_load_string($rtn);
}else {
    echo 'Curl error: '.curl_error($curlobj);
}
var_dump($xml);
curl_close($curlobj);
?>


发表回复

后才能评论

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。