0

我有这段代码,它获取目录中文件的名称,然后创建指向这些文件的链接。但是,链接中的文本末尾有文件扩展名。我想删除它,但同时保留到文件的正确链接,即 HTML 链接需要扩展名才能保留在上面 - 如下所示:

<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, '.'));

对此的任何帮助将不胜感激。

4

2 回答 2

2

你的意思是你想要这个吗?

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

我在您的帖子中找不到任何其他问题:)

于 2011-03-18T09:01:07.783 回答
1

Usingpathinfo()是一个更强大的解决方案,以防某些文件的名称带有更多点(如someclass.inc.php):

$parts = pathinfo($file);
$name  = $parts['basename'];
于 2011-03-18T09:04:59.913 回答