0

以下のスクリプトでは、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 />';
}
?>
4

1 に答える 1

1

これらのファイルをスクリプトの相対パスとして参照し、実際のフル パスを取得するために__FILE__使用します。dirname(...)次に、相対 URL を html に出力できます。

 $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 />';
 }
于 2012-06-11T19:08:10.843 に答える