首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>php>php应用>正文

php抓取和分析

http://www.oklinux.cn  2007-02-09  oklinux收集整理   会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

  抓取和分析一个文件是非常简单的事。这个教程将通过一个例子带领你一步一步地去实现它。让我们开始吧! 

  首先,我首必须决定我们将抓取的URL地址。可以通过在脚本中设定或通过$QUERY_STRING传递。为了简单起见,让我们将变量直接设在脚本中。 

  <? 
$url = 'http://www.php.net'; 
?>
 

  第二步,我们抓取指定文件,并且通过file()函数将它存在一个数组里。 

  <? 
$url = 'http://www.php.net'; 
$lines_array = file($url); 
?>
 

  好了,现在在数组里已经有了文件了。但是,我们想分析的文本可能不全在一行里面。为了解这个文件,我们可以简单地将数组$lines_array转化成一个字符串。我们可以使用implode(x,y)函数来实现它。如果在后面你想用explode(将字符串变量数组),将x设成"|"或"!"或其它类似的分隔符可能会更好。但是出于我们的目的,最好将x设成空格。y是另一个必要的参数,因为它是你想用implode()处理的数组。 

  <? 
$url = 'http://www.php.net'; 
$lines_array = file($url); 
$lines_string = implode('', $lines_array); 
?>
 

  现在,抓取工作就做完了,下面该进行分析了。出于这个例子的目的,我们想得到在<head>到</head> 之间的所有东西。为了分析出字符串,我们还需要叫做正规表达式的东西。 

  <? 
$url = 'http://www.php.net'; 
$lines_array = file($url); 
$lines_string = implode('', $lines_array); 
eregi("<head>(.*)</head>", $lines_string, $head); 
?>
 

  让我们看一下代码。正如你所见,eregi()函数按下面的格式执行: 

  eregi("<head>(.*)</head>", $lines_string, $head); 

  "(.*)"表示所有东西,可以解释为,"分析在<head>和</head>间的所以东西"。$lines_string是我们正在分析的字符串,$head是分析后的结果存放的数组。 

  最后,我们可以输数据。因为仅在<head>和</head>间存在一个实例,我们可以安全的假设数组中仅存在着一个元素,而且就是我们想要的。让我们把它打印出来吧。 

  <? 
$url = 'http://www.php.net'; 
$lines_array = file($url); 
$lines_string = implode('', $lines_array); 
eregi("<head>(.*)</head>", $lines_string, $head); 
echo $head[0]; 
?>
 

  这就是全部的代码了。




上一篇:正则表达式判断email和URL   下一篇:gbk,utf8,左右为难

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·php+ImageMagick+imagick API 配置指南
·第一节--面向对象编程
·Linux主机重编译PHP支持GD库
·php的预定义变量
·PHP/MySQL三日通(8)
·PHP分页显示制作详细讲解
·PHP5 的异常处理机制(2)
·正则表达式在UBB论坛中的应用(2)
·用php对文件上传处理过程的进一步说明
·第二节--PHP5 的对象模型
·通过gd库为图片添加透明水印
·用 PHP 实现通过 Web 执行 C/C++ 程序
·在PHP中使用与Perl兼容的正则表达式
·php有关于正则表达式的详细说明
·Redhat中快速安装php/mysql
·关于PHP逗点连接符与引号问题
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Linux系统上把PHP编译进Apache静态内核
·关于PHP逗点连接符与引号问题
·php有关于正则表达式的详细说明
·通过gd库为图片添加透明水印
·第二节--PHP5 的对象模型
·用php对文件上传处理过程的进一步说明
·PHP分页显示制作详细讲解
·Linux主机重编译PHP支持GD库
·php+ImageMagick+imagick API 配置指南
·第一节--面向对象编程
·php的预定义变量
·PHP/MySQL三日通(8)
  阅读排行
·Linux主机重编译PHP支持GD库
·MySQL (C API)VC实例及代码下载 (1)
·winbinder开发php桌面程序
·如何在Windows上配置并整合PHP和MySQL(
·php+ImageMagick+imagick API 配置指南
·通过gd库为图片添加透明水印
·MySQL (C API)VC实例及代码下载 (1)
·WASP使用方法简介(3)
·php中的exec函数并不想我想像的那样
·Linux系统上把PHP编译进Apache静态内核
·MySQL (C API)VC实例及代码下载 (1)
·如何在Windows上配置并整合PHP和MySQL(
·Zend Platform案例应用
·MySQL (C API)VC实例及代码下载 (1)
·用PHP来制作评论系统
网摘收藏: