删除PHP中的文件扩展名,同时还创建一个链接

时间:2011-03-18 08:58:11

标签: php file substr

我有这个代码,它取名目录中的文件名,然后创建这些文件的链接。但是,链接中的文本末尾有文件扩展名。我想删除它,但同时保持文件的正确链接,即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, '.'));

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

2 个答案:

答案 0 :(得分:2)

你能说你想要这个吗?

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

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

答案 1 :(得分:1)

使用pathinfo()是一个更强大的解决方案,以防某些文件的名称包含更多点(例如someclass.inc.php):

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