php中curl和file_get_content的区别


Posted in PHP onMay 10, 2014

直到最近,要做一个网页小偷程序的时候才发现file_get_content已经完全不能满足需求了。我觉得,在读取远程内容的时候,file_get_content除了使用比curl便捷以外,其他都没有curl好。

主要区别:

学习才发现,curl支持很多协议,有FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE以及LDAP,也就是说,它能做到很多file_get_content做不到的事情。curl在php可以实现远程获取和采集内容;实现PHP网页版的FTP上传下载;实现模拟登陆;实现接口对接(API),数据传输;实现模拟Cookie;下载文件断点续传等等,功能十分强大。

了解curl一些基本的使用后,才发现其实并不难,只不过记住里面一些设置参数,难弄一点,但是我们记住几个常用的就可以了。

开启curl:

因为PHP默认是不支持curl功能的,因此如果要用curl的话,首先需要在php.ini中开启该功能,即去掉 ;extension= php_curl.dll 前面的分号,然后保存后重启apache/iis就好了。

基本语法:

$my_curl = curl_init();    //初始化一个curl对象
curl_setopt($my_curl, CURLOPT_URL, "https://3water.com");    //设置你需要抓取的URL
curl_setopt($my_curl,CURLOPT_RETURNTRANSFER,1);    //设置是将结果保存到字符串中还是输出到屏幕上,1表示将结果保存到字符串
$str = curl_exec($curl);    //执行请求
echo $str;    //输出抓取的结果
curl_close($curl);    //关闭url请求

 
PHP 相关文章推荐
php中神奇的fastcgi_finish_request
May 02 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
php自动加载机制的深入分析
Jun 08 PHP
php模板原理讲解
Nov 13 PHP
php对关联数组循环遍历的实现方法
Mar 13 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
php的闭包(Closure)匿名函数初探
Feb 14 PHP
PHP编程计算日期间隔天数的方法
Apr 26 PHP
PHP并发查询MySQL的实例代码
Aug 09 PHP
PHP时间处理类操作示例
Sep 05 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
Apr 12 PHP
php使用yield对性能提升的测试实例分析
Sep 19 PHP
php实现文件下载功能的几个代码分享
May 10 #PHP
php按百分比生成缩略图的代码分享
May 10 #PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 #PHP
php下获取http状态的实现代码
May 09 #PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 #PHP
简单的php新闻发布系统教程
May 09 #PHP
php下载文件源代码(强制任意文件格式下载)
May 09 #PHP
You might like
最省空间的计数器
2006/10/09 PHP
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
2014/07/31 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
Vue项目中引入外部文件的方法(css、js、less)
2017/07/24 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
对python:print打印时加u的含义详解
2018/12/15 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
2020/02/07 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
经济管理专业毕业生推荐信
2013/11/11 职场文书
商业活动邀请函
2014/02/04 职场文书
商业房地产广告语
2014/03/13 职场文书
自我管理的活动方案
2014/08/25 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
《窃读记》教学反思
2016/02/18 职场文书