Search File Contents PHP 搜索目录文本内容的代码


Posted in PHP onFebruary 21, 2010

这个类可以用来搜索在给定的文本目录中的文件。
它可以给定目录遍历递归查找某些文件扩展名的文件。
并打开找到的文件,并检查他们是否包含搜索词语。

它返回一个含有所有文件的列表包含搜索词语数组。

<?php 
/* 
Class for searching the contents of all the files in a directory and its subdirectories 
For support please visit http://www.webdigity.com/ 
*/ 
class searchFileContents{ 
var $dir_name = '';//The directory to search var $search_phrase = '';//The phrase to search in the file contents 
var $allowed_file_types = array('php','phps');//The file types that are searched 
var $foundFiles;//Files that contain the search phrase will be stored here 
//开源代码OSPHP.COM.Cn 
var $myfiles; 
function search($directory, $search_phrase){ 
$this->dir_name = $directory; 
$this->search_phrase = $search_phrase; 
$this->myfiles = $this->GetDirContents($this->dir_name); 
$this->foundFiles = array(); 
if ( empty($this->search_phrase) ) die('Empty search phrase'); 
if ( empty($this->dir_name) ) die('You must select a directory to search'); 
foreach ( $this->myfiles as $f ){ 
if ( in_array(array_pop(explode ( '.', $f )), $this->allowed_file_types) ){ //开源OSPhP.COM.CN 
$contents = file_get_contents($f); 
if ( strpos($contents, $this->search_phrase) !== false ) 
$this->foundFiles [] = $f; 
//开源代码OSPhP.COm.CN 
} 
} 
return $this->foundFiles; 
} 
function GetDirContents($dir){ 
if (!is_dir($dir)){die ("Function GetDirContents: Problem reading : $dir!");} 
if ($root=@opendir($dir)){ 
//PHP开源代码 
while ($file=readdir($root)){ 
if($file=="." || $file==".."){continue;} 
if(is_dir($dir."/".$file)){ 
$files=array_merge($files,$this->GetDirContents($dir."/".$file)); 
}else{ 
$files[]=$dir."/".$file; //开源OSPhP.COM.CN 
} 
} 
} 
return $files; 
} 
} 
//Example : 
$search = new searchFileContents; 
$search->search('E:/htdocs/AccessClass', 'class'); //开源代码OSPHP.COM.Cn 
var_dump($search->foundFiles); 
?>
PHP 相关文章推荐
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 PHP
php中的观察者模式
Mar 24 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
php对数组内元素进行随机调换的方法
May 12 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
PHP文件上传操作实例详解
Sep 27 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 #PHP
用Zend Encode编写开发PHP程序
Feb 21 #PHP
PHP 学习路线与时间表
Feb 21 #PHP
php 高效率写法 推荐
Feb 21 #PHP
php 魔术函数使用说明
Feb 21 #PHP
php microtime获取浮点的时间戳
Feb 21 #PHP
PHP+ajax 无刷新删除数据
Feb 20 #PHP
You might like
php中Smarty模板初体验
2011/08/08 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
php删除指定目录的方法
2015/04/03 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
javascript中万恶的function实例分析
2011/05/25 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
2013/01/16 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
解决bootstrap导航栏navbar在IE8上存在缺陷的方法
2016/07/01 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
英语自荐信范文
2013/12/11 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
建筑工地标语
2014/06/18 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js