2016-09-06 149 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.'
  • '; –