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的图形函数中显示汉字
Oct 09 PHP
15种PHP Encoder的比较
Apr 17 PHP
用php获取远程图片并把它保存到本地的代码
Apr 07 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
php函数与传递参数实例分析
Nov 15 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
PHP实现伪静态方法汇总
Jan 13 PHP
微信公众号开发之语音消息识别php代码
Aug 08 PHP
PHP实现百度人脸识别
May 06 PHP
Laravel 实现添加多语言提示信息
Oct 25 PHP
PHP中国际化的字符串排序和比较对象详解
Aug 23 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
php如何获取文件的扩展名
2015/10/28 PHP
jquery中的on方法使用介绍
2013/12/29 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
浅谈React Event实现原理
2018/09/20 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
2019/05/10 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
电大毕业生自我鉴定
2013/11/10 职场文书
积极分子思想汇报
2014/01/04 职场文书
《匆匆》教学反思
2014/02/22 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
详细了解MVC+proxy
2021/07/09 Java/Android
mysq启动失败问题及场景分析
2021/07/15 MySQL