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之数据库操作详解及乱码解决!
Jan 02 PHP
PHP连接局域网MYSQL数据库的简单实例
Aug 26 PHP
php ImageMagick windows下安装教程
Jan 26 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
简单实现PHP留言板功能
Dec 21 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
Aug 30 PHP
PHP+RabbitMQ实现消息队列的完整代码
Mar 20 PHP
PHP远程连接oracle数据库操作实现方法图文详解
Apr 11 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
Oct 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
php+oracle 分页类
2006/10/09 PHP
smtp邮件发送一例
2006/10/09 PHP
模拟flock实现文件锁定
2007/02/14 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
javascript 客户端验证上传图片的大小(兼容IE和火狐)
2009/08/15 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
2017/08/22 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
利用js canvas实现五子棋游戏
2020/10/11 Javascript
[35:43]2018DOTA2亚洲邀请赛 4.1 小组赛B组 paiN vs Effect
2018/04/03 DOTA
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
PyCharm代码格式调整方法
2018/05/23 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
父母对孩子说的话
2014/04/12 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
诚信高考倡议书
2019/06/24 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
Vue+Flask实现图片传输功能
2022/04/01 Vue.js
详解OpenCV曝光融合
2022/04/29 Python