2016-09-06 106 views
1

我顯示文件夾中的所有文件,該部分工作正常。但是,每個鏈接都顯示文件擴展名。我試圖刪除它,但似乎也刪除了文件名。我需要顯示沒有擴展名的文件的名稱,但使用鏈接的href的擴展名的變量。如何刪除文件擴展名以顯示,但保留href的擴展名?

嘗試:

<?php 

$info = pathinfo($filename); 
$name = $info['filename']; 
$ext = $info['extension']; 

$name = pathinfo($filename)['filename']; 

$dir = opendir('folder/'); 
while ($read = readdir($dir)) 
{ 

if ($read!='.' && $read!='..') 
{ 
echo '<li><a class="" href="folder/'.$read.'">'.$name.'</a></li>'; 
} 

} 

closedir($dir); 

?> 

任何幫助深表感謝。

+0

一個爲什麼要這麼做?無論如何,文件名本身是非常不可靠和任意識別文件的。縮短並刪除信息當然不會改善這個問題。從用戶的角度來看,文件名無論如何都應該是無關緊要的,它是文件的_title_有意義。除此之外:請注意,可能有沒有或有多個擴展名的文件。通常所說的「文件擴展名」實際上只是文件名的一部分,而這正是以某種方式注意到的。從技術角度來看,它沒有特別的意義。 – arkascha

+0

我不明白...你是否還想生成一個文件目錄作爲HTML輸出? –

回答

1

更簡單的方式來做到這一點使用PHP的SCANDIR

http://php.net/manual/en/function.scandir.php

$files = array_diff(scandir('folder/'), array('.', '..')); 

foreach($files as $file){ 

    $name = strstr($file, '.', TRUE); 
    echo '<li><a class="" href="folder/'.$file.'">'.$name.'</a></li>'; 

} 
+0

唯一的問題是它顯示到父目錄的鏈接。 – Kez

+0

解決了這個問題。 – Kaylined

+0

echo'

  • '.$name.'
  • '; –