2012-04-25 3 views
0

Я пытаюсь создать страницу интрасети, которая просматривает все документы PDF в UNC-пути и возвращает их в списке в виде гиперссылок, которые открываются в новом окне. Я почти там, однако следующий код отображает полный путь UNC. Мой вопрос: как я могу отобразить только имя файла (желательно без расширения .pdf). Я экспериментировал с функцией basename, но, похоже, не смог получить правильный результат.PHP Извлечь только имя файла из UNC-пути

//path to Network Share 
$uncpath = "//myserver/adirectory/personnel/"; 
//get all files with a .pdf extension. 
$files = glob($uncpath . "*.pdf"); 
//print each file name 
foreach ($files as $file) 
{ 
echo "<a target=_blank href='File:///$file'>$file</a><br>"; 
} 

ссылки работают нормально ли это просто текстовый дисплей показывает //myserver/adirectory/personnel/document.pdf, а не просто document. Обратите внимание, что приведенный выше код был взят из другого примера, который я нашел во время исследования. Если есть совершенно новый лучший способ, то я открыт для предложений.

+3

Вы ищете для ['basename'] (http://php.net/basename). – Jon

+1

Возможный дубликат [Как получить имя файла из полного пути с PHP?] (Http://stackoverflow.com/questions/1418193/how-to-get-file-name-from-full-path-with-php) –

ответ

2

Измените код, как это:

<? 
$uncpath = "//myserver/adirectory/personnel/"; 
//get all files with a .pdf extension. 
$files = glob($uncpath . "*.pdf"); 
//print each file name 
foreach ($files as $file) 
{ 
echo "<a target=_blank href='File:///$file'>".basename($file)."</a><br>"; 
} 

?> 
+0

Приветствия сработали! Спасибо всем за быстрые ответы. – SuperSub

+0

Снять расширение: echo "".preg_replace("/\\.[^.\\s]{3,4}$/", "",basename($file))."
"; – elo

+0

Даже лучше, спасибо, вы очень цените совет! – SuperSub

0

Вы можете попробовать это, если базовое() не работает по какой-то причине:

$file_a = explode('/',$file); 
if (trim(end($file_a)) == '') 
    $filename = $file_a[count($file_a)-2]; 
else 
    $filename = end($file_a); 
Смежные вопросы