下面的脚本,当我引用URL时,如果我以任何方式缩短它,它就无法找到文件,但是当它保持全长时,它会将完整的服务器URL输出到链接并且href - 是否存在一个正确的方法来更改包含目录以防止这种情况?
<?php
function getFiles($dir)
{
$arr=scandir($dir);
$res=array();
foreach ($arr as $item)
{
if ($item=='..' || $item=='.'){continue;}
$path=$dir.'/'.$item;
if (is_dir($path))
{
$res=array_merge($res,getFiles($path));
}
else
{
$res[$path]=filemtime($path);
}
}
return $res;
}
$files=getFiles('/var/www/vhosts/mysite.com/httpdocs/Manuals/');
arsort($files);
$files=array_slice(array_keys($files),0,11);
foreach ($files as $file)
{
echo '<a href="'.$file.'">'.$file.'</a><br />';
}
?>
答案 0 :(得分:1)
引用这些文件作为相对于脚本的__FILE__
并使用dirname(...)
来获取完整的实际路径。然后您可以输出html中的相对URL:
$files=getFiles(dirname('Manuals'));
arsort($files);
$files=array_slice(array_keys($files),0,11);
foreach ($files as $file)
{
$file = pathinfo($file)['filename'];
echo '<a href="Manuals/'.$file.'">'.$file.'</a><br />';
}