2014-01-30 2 views
0

У меня есть этот скрипт работает, который (если он находит что-то) возвращает полный путь он находит файл. Мне это нужно, чтобы показывать только подкаталог это в.PHP ответ File Search

Например, если это найден, он будет возвращать что-то подобное:

./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. 
} 

Как я могу показать только подкаталог, если результат возвращается?

+0

В чем проблема? Что вы уже пробовали? – kero

ответ

-1

Замените петлю Еогеасп с этим:

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

СПАСИБО !!!!!!!!!!!! !!!!!!!!!!!!! – user3079125

0

Функция PathInfo может быть то, что вам нужно: http://www.php.net/manual/en/function.pathinfo.php

Вы можете использовать последнюю часть поля «Dirname».

+0

Я знаю, но так как результат для пользователей говорит, что он будет продолжать, если файл не найден, я подумал, что он может использовать имя файла впоследствии :-) – Doberman