2011-03-18 120 views
0

我有這個代碼,它取得目錄中文件的名稱,然後創建一個鏈接到這些文件。但是,鏈接中的文本末尾具有文件擴展名。我想刪除這一點,但同時保持了正確的鏈接到文件,即HTML鏈接需要延長留在它 - 這樣的:在PHP中刪除文件擴展名,同時創建一個鏈接

<a href="/documents/other/file.pdf">File</a> 

因此,這裏是我的腳本:

$linkdir="documents/other"; 
$dir=opendir("documents/other"); 

$files=array(); 

while (($file=readdir($dir)) !== false) 
{ 
    if ($file != "." and $file != ".." and $file != "index.php") 
    { 
    array_push($files, $file); 
    } 
} 

natcasesort($files); 
$files=array_reverse($files); 

foreach ($files as $file) 
print "<li><a href='/$linkdir/$file' rel='external'>$file</a></li>"; 

這裏是我需要整合刪除的文件擴展名的代碼:

$name = substr($file, 0, strrpos($file, '.')); 

任何幫助,這將不勝感激。

+0

如果你已經有了代碼,那麼問題是什麼? – Nanne 2011-03-18 09:00:12

回答

2

你是說你想要這個嗎?

foreach ($files as $file){ 
    $name = substr($file, 0, strrpos($file, '.')); 
    print "<li><a href='/$linkdir/$file' rel='external'>$name</a></li>"; 
} 

我無法找到任何其他問題,您的文章:)

+0

是的!完全是這樣的 - 我確信我嘗試過,但它沒有工作LOL。非常感謝你! – Jonathan 2011-03-18 09:27:31

+0

也許你沒有添加openstache/nearestache? – Nanne 2011-03-18 09:29:17

1

使用pathinfo()是一個更強大的解決方案,在某些情況下,文件的名稱與更多的點(如someclass.inc.php):

$parts = pathinfo($file); 
$name = $parts['basename'];