PHP文件搜索响应

时间:2014-01-30 23:44:44

标签: php glob

我有这个脚本工作,(如果找到的话)返回它找到文件的完整路径。我需要它只显示它所在的子目录。

例如,如果找到它,它将返回类似于:

的内容
  

./ prls / carrier1 / 00000.prl
  已经在数据库中了!

我希望它只是说:carrier1。

$dirname = './prls/';
$findme  = $_FILES["file"]["name"];
$dirs    = glob($dirname.'*', GLOB_ONLYDIR);
$files   = array();
//--- search through each folder for the file
//--- append results to $files
foreach( $dirs as $d ) {
    $f = glob( $d .'/'. $findme );
    if( count( $f ) ) {
        $files = array_merge( $files, $f );
    }
}
if( count($files) ) {
    foreach( $files as $f ) {
        echo $f . "<br />";
    }
    echo "Already in database!";
    die;
} else {
    echo "Nothing was found, continue..";//Tell the user nothing was found.
}

如果返回结果,我该如何才显示子目录?

2 个答案:

答案 0 :(得分:0)

pathinfo功能可能是您所需要的:http://www.php.net/manual/en/function.pathinfo.php

然后,您可以使用“dirname”字段的最后一部分。

答案 1 :(得分:-1)

用这个替换你的foreach循环:

foreach( $files as $f ) {
    $info = pathinfo( $f );
    $parts = explode( DIRECTORY_SEPARATOR, $info['dirname'] );
    $lastSegment = array_pop( $parts );
    echo $lastSegment . "<br />";
}