1

我正在尝试创建一个 Intranet 页面,该页面在 UNC 路径中查找所有 pdf 文档,并将它们作为在新窗口中打开的超链接在列表中返回。我快到了,但是下面的代码显示了完整的 UNC 路径-我的问题是如何只显示文件名(最好也没有 .pdf 扩展名)。我已经尝试过basename函数,但似乎无法得到正确的结果。

//path to Network Share
$uncpath = "//myserver/adirectory/personnel/";
//get all files with a .pdf extension.
$files = glob($uncpath . "*.pdf");
//print each file name
foreach ($files as $file) 
{
echo "<a target=_blank href='File:///$file'>$file</a><br>"; 
}

链接工作正常,只是显示文本//myserver/adirectory/personnel/document.pdf而不是document. 请注意,上面的代码取自我在研究时发现的另一个示例。如果有一个全新的更好的方法,那么我愿意接受建议。

4

3 回答 3

4
echo basename($file);

http://php.net/basename

于 2012-04-25T09:05:50.197 回答
2

像这样修改你的代码:

<?
$uncpath = "//myserver/adirectory/personnel/";
//get all files with a .pdf extension.
$files = glob($uncpath . "*.pdf");
//print each file name
foreach ($files as $file) 
{
echo "<a target=_blank href='File:///$file'>".basename($file)."</a><br>"; 
}

?>
于 2012-04-25T09:14:55.647 回答
0

如果 basename() 由于某种原因不起作用,您可以试试这个:

$file_a = explode('/',$file);
if (trim(end($file_a)) == '')
    $filename = $file_a[count($file_a)-2];
else
    $filename = end($file_a);
于 2012-04-25T09:11:12.727 回答