php搜索文件名,PHP搜索文件且列出文件名的代码参考
先来看一个简单的php搜索文件并显示的代码。
如下:
/**
* 搜索文件并列出文件名
* opendir打开目录
* readdir读取文件名
* unlink删除文件
* edit by www.jbxue.com
*/
$dir = "file/class/";
//获取目录下的文件
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if($file!="."&&$file!=".."){
$unexit[]=$file;}
}
closedir($dh);
}
}
?>
下面是功能更强,复杂点的。
/**
* 文件: search.php
* 功能: 搜索指定目录下的HTML文件
*/
/* 基本函数 */
//获取目录下文件函数
function getFile($dir)
{
$dp = opendir($dir);
$fileArr = array();
while (!false == $curFile = readdir($dp)) {
if ($curFile!="." && $curFile!=".." && $curFile!="") {
if (is_dir($curFile)) {
$fileArr = getFile($dir."/".$curFile);
} else {
$fileArr[] = $dir."/".$curFile;
}
}
}
return $fileArr;
}
//获取文件内容
function getFileContent($file)
{
if (!$fp = fopen($file, "r")) {
die("Cannot open file $file");
}
while ($text = fread($fp, 4096)) {
$fileContent .= $text;
}
return $fileContent;
}
//搜索指定文件
function searchText($file, $keyword)
{
$text = getFileContent($file);
if (preg_match("/$keyword/i", $text)) {
return true;
}
return false;
}
//搜索出文章的标题
function getFileTitle($file, $default="None subject")
{
$fileContent = getFileContent($file);
$sResult = preg_match("/
.*/i", $fileContent, $matchResult);
$title = preg_replace(array("/(
)/i","/()/i"), "", $matchResult[0]);
if (empty($title)) {
return $default;
} else {
return $title;
}
}
//获取文件描述信息
function getFileDescribe($file,$length=200, $default="None describe")
{
$metas = get_meta_tags($file);
if ($meta['description'] != "") {
return $metas['description'];
}
$fileContent = getFileContent($file);
preg_match("/(
)/is", $fileContent, $matchResult);
$pattern = array("/()/i","/()+/i", "/()+/i", "/()+/i",
"/([])+.*([])+/i","/&/i","/"/i","/'/i", "/\s/");
$description = preg_replace($pattern, "", $matchResult[0]);
$description = mb_substr($description, 0, $length)." ...";
return $description;
}
//加亮搜索结果中的关键字
function highLightKeyword($text, $keyword, $color="#C60A00")
{
$newword = "$keyword";
$text = str_replace($keyword, $newword, $text);
return $text;
}
//获取文件大小(KB)
function getFileSize($file)
{
$filesize = intval(filesize($file)/1024)."K";
return $filesize;
}
//获取文件最后修改的时间
function getFileTime($file)
{
$filetime = date("Y-m-d", filemtime($file));
return $filetime;
}
//搜索目录下所有文件
function searchFile($dir, $keyword)
{
$sFile = getFile($dir);
if (count($sFile) <= 0) {
return false;
}
$sResult = array();
foreach ($sFile as $file) {
if (searchText($file, $keyword)) {
$sResult[] = $file;
}
}
if (count($sResult) <= 0) {
return false;
} else {
return $sResult;
}
} //by www.jbxue.com
/* 测试代码 */
//指定要搜索的目录
$dir = "./php_Linux";
//要搜索的关键字
$keyword = "sendmail";
$fileArr = searchFile($dir, $keyword);
$searchSum = count($fileArr);
echo "搜索关键字: $keyword 搜索目录: $dir 搜索结果: $searchSum
";
if ($searchSum <= 0) {
echo "没有搜索到任何结果";
} else {
foreach ($fileArr as $file) {
echo "". highLightKeyword(getFileTitle($file), $keyword) .
" - ".getFileSize($file)." ". getFileTime($file) .
"
\n".highLightKeyword(getFileDescribe($file), $keyword) .
"
";
}
}
?>
php搜索文件名,PHP搜索文件且列出文件名的代码参考相关推荐
- python合并路径和文件名,python关于文件路径和文件名的操作
os.path.abspath(path) #返回绝对路径(包含文件名的全路径) os.path.basename(path) -- 去掉目录路径获取文件名 os.path.dirname(path) ...
- python 打印文件名_Python | 打印文件内容以及文件名
python 打印文件名 打印文件名 (Printing file name ) To print the filename, we use "file_object.name". ...
- Windows7内置搜索,同时搜索文件名以及文件里面的内容
http://www.jb51.net/os/windows/283168.html Windows7内置搜索如何同时搜索文件名与内容 Win7的搜索功能效果非常强大,不但比WinXP快上许多,而且还 ...
- Linux Shell重定向 管道命令 grep搜索 awk编程 sed文件操作高阶函数
在编程中如果能够熟悉shell高阶语法,将对我们进阶为高级程序员有很大的帮助,本文将从Shell重定向 管道命令 awk编程 sed等方面展开介绍. 作者:有勇气的牛排 文章目录 1 shell重定向 ...
- 如何使用计算机搜索功能,如何使用Win7搜索功能快速找到文件?
现在的电脑硬盘动辄500G,电脑文件越来越多,不免有时候忘记了文件的存放位置,慢慢找太浪费时间了.其实查找文件其实也是很有学问的,灵活应用现有的系统工具与软件技巧能起到事半功倍的效果,现在主流的win ...
- gorm preload 搜索_macOS系统本地文件搜索工具
Find Any File Mac可以准确快速地查找本次磁盘甚至是本地隐藏磁盘上的任何文件,Find Any File Mac不使用数据库,而是使用文件系统驱动程序的快速搜索操作,包括能够搜索到通常隐 ...
- 搜索目录里所有文件(包括子目录)
搜索目录里所有文件(包括子目录) 资料来源:http://www.cnblogs.com/jjwwww/archive/2004/09/04/39559.aspx 用到两个函数ParseDirecto ...
- php搜索文件名,window_Windows7内置搜索如何同时搜索文件名与内容, Win7的搜索功能效果非常强 - phpStudy...
Windows7内置搜索如何同时搜索文件名与内容 Win7的搜索功能效果非常强大,不但比WinXP快上许多,而且还能即输即显.不过我们在平时使用的时候大家会发现,Win7搜索只能搜索目录中的文件名,却 ...
- win11如何加快搜索速度 Windows11更改文件索引加快搜索速度的设置方法
有时候当你急需寻找一份文件的时候,可能查找筛选需要很长时间,但是有什么方法可以加快寻找文件的搜索速度呢?今天小编就为大家带来更改文件索引加快搜索速度的教程.更多Windows11安装步骤可以参考小白一 ...
最新文章
- oracle bom层级sql,oracle bom_tree.sql
- 获取收藏夹路径的C++代码
- 玩游戏计算机缺失msvcp140,玩英雄联盟提示电脑缺少msvcp140.dll怎么办
- 前端学习(2761):uni-app样式的学习
- uln2003驱动蜂鸣器_让蜂鸣器发声
- a1708硬盘转接口_资讯:希捷上架新款银河Exos系列机械硬盘,15000转+SAS协议
- 力扣225. 用队列实现栈(JavaScript)
- 路由器刷机后无线模块丢失-竞斗云2.0刷机
- 虾米音乐的监控体系升级之路
- Maxent猛犸反欺诈入选Gartner 2018 Cool Vendors
- 职称计算机怎么练,2017职称计算机windows操作训练题
- contentType,charset和pageEncoding的区别
- C++使用system创建进程
- matlab 直流无刷电机,无刷直流电机的matlab仿真.pdf
- 周易六十四卦——风火家人卦
- IDEA 黄色警告 found duplicated code in this file finds duplicated code
- 世界通用闹铃(闹钟铃声)铃声 世界通用闹铃(闹钟铃声)手机铃声...
- [创业路程] 从Idea到付诸实践,你必须要知道的…创业草堂系列
- ocmt:高维固定效应模型的变量筛选问题
- 计算机学算法的意义,浅析算法在计算机编程中的重要作用
热门文章
- php写else老是报错,调试PHP错误经常用到的一些
- android网络框架
- 基于JAVA+SpringMVC+MYSQL的报价管理系统
- android简单课表,模仿大神的一个android课程表
- 10个实战及面试常用Linux Shell脚本编写
- Python下socket通信
- Hibernate面试题收藏
- [outlook]打开以后就自动进入安全模式的解决方法。Outlook start in safe mode.
- HDU 5183 Negative and Positive (NP)
- jquery之超简单的div显示和隐藏特效demo