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 相关文章推荐
一个基于PDO的数据库操作类
Mar 24 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
PHP实现中文圆形印章特效
Jun 19 PHP
详解PHP对象的串行化与反串行化
Jan 24 PHP
win7安装php框架Yii的方法
Jan 25 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
Oct 18 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
Jun 13 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
PHP日志LOG类定义与用法示例
Sep 06 PHP
PHP获取对象属性的三种方法实例分析
Jan 03 PHP
详解将数据从Laravel传送到vue的四种方式
Oct 16 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 import 文件内容变量失效的问题
2013/06/20 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
jquery得到font-size属性值实现代码
2013/09/30 Javascript
JavaScript SHA512&SHA256加密算法详解
2015/08/11 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
JavaScript数组复制详解
2017/02/02 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
addeventlistener监听scroll跟touch(实例讲解)
2017/08/04 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
[02:35]DOTA2英雄基础教程 狙击手
2014/01/14 DOTA
Python中关键字is与==的区别简述
2014/07/31 Python
Python 判断奇数偶数的方法
2018/12/20 Python
浅谈Django+Gunicorn+Nginx部署之路
2019/09/11 Python
Pytorch evaluation每次运行结果不同的解决
2020/01/02 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
Python批量启动多线程代码实例
2020/02/18 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
Python实现一个论文下载器的过程
2021/01/18 Python
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
作文批改评语大全
2014/04/23 职场文书
国际贸易系求职信
2014/08/09 职场文书
三峡大坝导游词
2015/01/31 职场文书
学校通报表扬范文
2015/05/04 职场文书
团结友爱主题班会
2015/08/13 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书