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 相关文章推荐
PHP4实际应用经验篇(6)
Oct 09 PHP
PHP将XML转数组过程详解
Nov 13 PHP
PHP获取服务器端信息的方法
Nov 28 PHP
php关键字仅替换一次的实现函数
Oct 29 PHP
带你了解PHP7 性能翻倍的关键
Nov 19 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 PHP
PHP加密技术的简单实现
Sep 04 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
Nov 20 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
详细解读php的命名空间(二)
Feb 21 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 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
php cout<<的一点看法
2010/01/24 PHP
理解php原理的opcodes(操作码)
2010/10/26 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
PHP内置加密函数详解
2016/11/20 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
javaScript中的空值和假值
2017/12/18 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
Python转码问题的解决方法
2008/10/07 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
安全资金保障制度
2014/01/23 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
导游词300字
2015/02/13 职场文书
社区党支部承诺书
2015/04/29 职场文书
2015年工程师工作总结
2015/04/30 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript
Python制作春联的示例代码
2022/01/22 Python