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 相关文章推荐
ADODB类使用
Nov 25 PHP
用PHP实现的生成静态HTML速度快类库
Mar 31 PHP
一个php导出oracle库的php代码
Apr 20 PHP
QQ登录 PHP OAuth示例代码
Jul 20 PHP
探讨php中防止SQL注入最好的方法是什么
Jun 10 PHP
基于simple_html_dom的使用小结
Jul 01 PHP
PHP加密解密实例分析
Dec 25 PHP
PHP转换文本框内容为HTML格式的方法
Jul 20 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
Oct 08 PHP
thinkPHP批量删除的实现方法分析
Nov 09 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 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
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python基础教程之字典操作详解
2014/03/25 Python
Python的高级Git库 Gittle
2014/09/22 Python
python使用Matplotlib画饼图
2018/09/25 Python
Python和Go语言的区别总结
2019/02/20 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
什么是反射
2012/03/17 面试题
总经理司机岗位职责
2014/02/06 职场文书
历史专业大学生职业生涯规划书
2014/03/13 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
教师自查自纠工作情况报告
2014/10/29 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
机关单位2016年创先争优活动总结
2016/04/05 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
Python自动化之批量处理工作簿和工作表
2021/06/03 Python
Python中re模块的元字符使用小结
2022/04/07 Python
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers