递归搜索子目录,忽略目录PHP
Recursively search sub directories, ignore directories PHP
我使用AJAX和文本输入发送一个搜索字符串到我当前的PHP文件,这个脚本搜索目录的文件和文件夹,但没有子文件夹。我想要的是只搜索目录和子目录中的文件,然后列出它们。结构如下:
Corecube
-Categories
--Movies
---File 1
---File 2
---File 3
--Music
---File 1
---File 2
---File 3
--Pictures
---File 1
---File 2
---File 3
-MainCategories
--Code
---File 1
---File 2
---File 3
--Gifs
---File 1
---File 2
---File 3
然后在"Corecube"的父目录中进行搜索,但只从每个子目录中吐出文件名,而没有实际的目录。我已经尝试了几次迭代我目前的脚本,但最终打破了它每一次。
<?php
$dir = "../corecube";
$key = $_GET['key'];
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if($file == $key){
echo('<a href="'.$dir . $file.'">'. $file .'</a>'."'n");
}
}
closedir($dh);
}
}
?>
更新后的代码格式:
你需要在嵌套文件夹
中搜索文件试试这个
<?php
function matchFile($filename, $path, $key)
{
if(preg_match("/$key/i",$filename))
{
echo('<a href="'.$path.'">'. $filename .'</a>'."<br>"); //use regex than casual '==' for flexible search
}
}
function getListDir($dir, $key)
{
if(strlen($key)<2) die("insert min 2 length string"); //for avoid return/display bunch of list file
if(is_dir($dir))
{
if ($dh = opendir($dir))
{
while (($file = readdir($dh)) !== false)
{
$newItem="$dir/$file";
if($file=='.' || $file=="..")
{
continue;
}
elseif(is_dir("$newItem"))
{
getListDir("$newItem", $key);
}
elseif(is_file("$newItem"))
{
matchFile($file, $newItem, $key);
}
else
{
//do nothing
}
}
}
else
{
die ("cant open folder: $folder");
}
}
}
//run script
$initialFolder="initialfolder"; // change this into "../corecube"
$key = (isset($_GET["key"]))?$_GET['key']:NULL;
getListDir($initialFolder, $key);
?>
相关文章:
- 使用php在html中搜索硬编码的JavaScript变量
- Javascript和PHP和谐相处 - 搜索功能
- PHP 中的搜索条件
- 从PHP自动完成动态搜索SQL数据库
- 使用PHP和JavaScript动态搜索SQL表并在HTML上显示
- 如何在php和javascript中使用regex检测空格分隔词(在全文搜索查询中)
- php/mysql搜索结果-当类型>1,同时保持其他类型不>1-代码点火器
- 使用 json ajax javascript jquery 和 java 的自动完成搜索栏(无 PHP)
- 如何从 php 形式在 mysql 数据库中动态搜索
- Javascript PHP在点击搜索时出现弹出图像,关闭图像后显示搜索结果
- Php 搜索表单显示结果时无需按搜索按钮,而它应该等到按下按钮才能显示它们
- 在HTML中搜索PHP的最佳方法
- javascript 或 PHP 来执行搜索和替换功能
- PHP ajax 搜索结果搞砸了我的页面
- 修改sphider搜索.php文件并请帮助我
- PHP MySQL 和 AJAX 搜索过滤器延时
- 使用 PHP、AJAX 和 jQuery 搜索 MySQL 数据库
- 使用API、Javascript或PHP搜索并播放YouTube结果
- 直接从PHP搜索查询链接到URL
- php搜索函数使用javascript动态显示结果