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 session处理的定制
Mar 16 PHP
认识并使用PHP超级全局变量
Jan 26 PHP
php 仿Comsenz安装效果代码打包提供下载
May 09 PHP
PHP备份数据库生成SQL文件并下载的函数代码
Feb 05 PHP
PHPEXCEL 使用小记
Jan 06 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
php图片的二进制转换实现方法
Dec 15 PHP
php查看当前Session的ID实例
Mar 16 PHP
php按字符无乱码截取中文的方法
Mar 27 PHP
php如何连接sql server
Oct 16 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
php输出反斜杠的实例方法
Sep 19 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
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
PHP扩展开发入门教程
2015/02/26 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
英国家电直销:Appliances Direct
2016/09/22 全球购物
悬挂训练绳:TRX
2017/12/14 全球购物
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
生物技术专业毕业生求职信范文
2013/12/14 职场文书
捐款倡议书范文
2014/02/02 职场文书
党员公开承诺书范文
2014/03/25 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
新闻学专业求职信
2014/07/28 职场文书
对外汉语专业大学生职业生涯规划书
2014/10/11 职场文书
婚宴新娘致辞
2015/07/28 职场文书