私はコードPHP:それらのディレクトリとリンクでリストファイルの種類
$directory = "C:/My file path";
$phpfiles = glob($directory . "*.html");
foreach($phpfiles as $phpfiles)
{
echo $phpfiles;
}
を持っている。しかし、それだけでファイルのリストを表示しないようにどのように私はそれを変更するだろうが、実際にそれらにリンク?
私はコードPHP:それらのディレクトリとリンクでリストファイルの種類
$directory = "C:/My file path";
$phpfiles = glob($directory . "*.html");
foreach($phpfiles as $phpfiles)
{
echo $phpfiles;
}
を持っている。しかし、それだけでファイルのリストを表示しないようにどのように私はそれを変更するだろうが、実際にそれらにリンク?
まず、foreach()で同じ変数名を使用しないでください。このようにファイルにリンクすることができます。
foreach($phpfiles as $phpfile)
{
echo "<a href=$phpfile>".basename($phpfile)."</a>";
}
(例:/home/eray/Desktop/test.html)ファイルの完全なパスを含む$phpfile
basename()
だけのパスからファイル名を返しています。 basename($phpfile)
の出力はtest.html
です。 test
(.html
拡張子なし)だけを印刷する場合は、これを使用できます。basename($phpfile, ".html")
ありがとう、@aSeptik。
リンクがWebサーバー経由でアクセス可能であると仮定すると、Webアクセスのためのルートパスはコンピュータとは異なる必要があります。また、あなたのforeachは間違っています。 2番目の変数は特異でなければなりません(少なくとも最初の変数とは異なる)。だからあなたのWebサーバが有効なサイトのパスとしてファイルパスを見ていると仮定すると:
$rootPath = "/MyFilePath";
foreach ($phpfiles as $phpfile)
{
echo "<a href=\"$rootPath/$phpfile\">$phpfile</a>";
}
$files = glob("*.html");
echo '<ul>'.implode('', array_map('sprintf', array_fill(0, count($files), '<li><a href="%s">%s</a></li>'), $files, $files)).'</ul>';
これは、例えば、ファイルのフルパスを(含むOK "eray"
$のphpfileです: /home/eray/Desktop/test.html)basename()はパスからファイル名 を返しています。 basename($ phpfile)の出力はtest.htmlです。 (拡張子が.htmlでない)だけをテストしたい場合は、次のようにしてください: basename($ phpfile、 ".html")Thanks、@aSeptik。
除去方法。 phpの拡張子とリンクにあります。
exaple: ます。http // example.com/DIR1 /ファイルの.php **
(最後のアウトの.phpで)。
おかげ
これはリンクする方法の質問に答えますか? – CodeCamper
この質問はそれを行う方法ではありません – user2988099
質問は**どうすればファイルをリストアップするのではなく、実際にリンクするのですか?** – CodeCamper
'ベース名($のphpfileは、 '.htmlを');' –
はいあなたも、それを使用することができます。ファイルの拡張子を印刷したくない場合(つまり、 '.html'を意味する) – Eray