php获取网页内容方法总结


Posted in PHP onDecember 04, 2008

抓取到的内容在通过正则表达式做一下过滤就得到了你想要的内容,至于如何用正则表达式过滤,在这里就不做介绍了,有兴趣的,以下就是几种常用的用php抓取网页中的内容的方法。
1.file_get_contents
PHP代码

<?php 
$url = "https://3water.com"; 
$contents = file_get_contents($url); 
//如果出现中文乱码使用下面代码 
//$getcontent = iconv("gb2312", "utf-8",$contents); 
echo $contents; 
?>

2.curl
PHP代码
<?php 
$url = "https://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); 
//在需要用户检测的网页里需要增加下面两行 
//curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
//curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD); 
$contents = curl_exec($ch); 
curl_close($ch); 
echo $contents; 
?>

3.fopen->fread->fclose
PHP代码
<?php 
$handle = fopen ("https://3water.com", "rb"); 
$contents = ""; 
do { 
$data = fread($handle, 1024); 
if (strlen($data) == 0) { 
break; 
} 
$contents .= $data; 
} while(true); 
fclose ($handle); 
echo $contents; 
?>

注:
1.使用file_get_contents和fopen必须空间开启allow_url_fopen。方法:编辑php.ini,设置allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。
2.使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分号去掉,而且需要拷贝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安装curl扩展。
PHP 相关文章推荐
PHP安全配置
Oct 09 PHP
php 数组的一个悲剧?
May 11 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
Oct 15 PHP
php过滤表单提交的html等危险代码
Nov 03 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
php简单处理XML数据的方法示例
May 19 PHP
php封装单文件上传到数据库(路径)
Oct 15 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
Nov 19 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 PHP
php smarty的预保留变量总结
Dec 04 #PHP
php 页面执行时间计算代码
Dec 04 #PHP
Zend Studio 无法启动的问题解决方法
Dec 04 #PHP
Optimizer与Debugger兼容性问题的解决方法
Dec 01 #PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 #PHP
discuz论坛 用户登录 后台程序代码
Nov 27 #PHP
php 移除数组重复元素的一点说明
Nov 27 #PHP
You might like
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
javascript JSON操作入门实例
2010/04/16 Javascript
实用的JS正则表达式(手机号码/IP正则/邮编正则/电话等)
2013/01/11 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
浅谈JS日期(Date)处理函数
2014/12/07 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
在Angular中使用JWT认证方法示例
2018/09/10 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
python利用装饰器进行运算的实例分析
2015/08/04 Python
详解Python打包分发工具setuptools
2019/08/05 Python
使用python实现kNN分类算法
2019/10/16 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
全球工业:Global Industrial
2020/02/01 全球购物
测试时代收集的软件测试面试题
2013/09/25 面试题
六一节目主持词
2014/04/01 职场文书
金融事务专业求职信
2014/04/25 职场文书
施工安全生产承诺书
2014/05/23 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python