PHP中4种常用的抓取网络数据方法


Posted in PHP onJune 04, 2015

本小节的名称为 fsockopen,curl与file_get_contents,具体是探讨这三种方式进行网络数据输入输出的一些汇总。关于 fsockopen 前面已经谈了不少,下面开始转入其它。这里先简单罗列一下一些常见的抓取网络数据的一些方法。

1. 用 file_get_contents 以 get 方式获取内容:

$url = 'http://localhost/test2.php';
$html = file_get_contents($url);
echo $html;

2. 用fopen打开url,以get方式获取内容

$url = 'http://localhost/test2.php';
$fp = fopen($url, 'r');
stream_get_meta_data($fp);
$result = '';
while(!feof($fp))
{
  $result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);

3. 用file_get_contents函数,以post方式获取url

$data = array(
 'foo'=>'bar',
 'baz'=>'boom',
 'site'=>'3water.com',
 'name'=>'nowa magic');
 
$data = http_build_query($data);

//$postdata = http_build_query($data);
$options = array(
 'http' => array(
 'method' => 'POST',
 'header' => 'Content-type:application/x-www-form-urlencoded',
 'content' => $data
 //'timeout' => 60 * 60 // 超时时间(单位:s)
 )
);

$url = "http://localhost/test2.php";
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);

echo $result;

4、使用curl库,使用curl库之前,可能需要查看一下php.ini是否已经打开了curl扩展

$url = 'http://localhost/test2.php?site=3water.com';
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
PHP 相关文章推荐
PHP求小于1000的所有水仙花数的代码
Jan 10 PHP
浅析php中jsonp的跨域实例
Jun 21 PHP
解析php如何将日志写进syslog
Jun 28 PHP
显示程序执行时间php函数代码
Aug 29 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
PHP获取一段文本显示点阵宽度和高度的方法
Mar 12 PHP
thinkPHP下的widget扩展用法实例分析
Dec 26 PHP
php使用curl并发减少后端访问时间的方法分析
May 12 PHP
JSON字符串传到后台PHP处理问题的解决方法
Jun 05 PHP
PHP入门教程之上传文件实例详解
Sep 11 PHP
php base64 编码与解码实例代码
Mar 21 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 PHP
php实现将上传word文件转为html的方法
Jun 03 #PHP
php 类自动载入的方法
Jun 03 #PHP
php操作memcache缓存方法分享
Jun 03 #PHP
php操作redis缓存方法分享
Jun 03 #PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 #PHP
php使用GD实现颜色渐变实例
Jun 02 #PHP
PHP准确取得服务器IP地址的方法
Jun 02 #PHP
You might like
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
nodejs实现邮件发送服务实例分享
2017/03/29 NodeJs
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python实现的栈(Stack)
2018/01/26 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
python一键去抖音视频水印工具
2018/09/14 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
华为C++笔试题
2014/08/05 面试题
大学军训感言600字
2014/02/25 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
五一劳动节活动记录
2014/03/23 职场文书
财务情况说明书范文
2014/05/06 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
毕业设计致谢词
2015/05/14 职场文书
flex弹性布局详解
2022/03/20 HTML / CSS