ディレクトリ内のファイルに勝手にリンクしてくれるPHP
2020年11月15日 12時00分 月齢:0.3[新月] 潮汐:大潮
(最終更新日:2021年09月01日)
4年前に投稿 | ウェブ・IT関係 | 1件のコメント
3分ぐらいで読めます。
特定のディレクトリ(フォルダ)にファイルを入れておくと、勝手に一覧のリストを作ってくれるPHPです。使い方としては「家で作った動画ファイル・パワポ資料などを会社でダウンロードして業務や研修で使うとき、会社からはFTPが使えない。なのでHTTPでダウンロードする。」みたいなことがしばしばあったので、さくっとダウンロードするためにPHPを書いてみた、という感じです。(もう少し正確にいうと、エックスサーバーのWebFTPの仕様が変わって、今まで簡単にデータのやりとりができていたのができなくなったことが動機なのです…以前のファイルマネージャのほうがよかった。)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>download list</title>
</head><body>
<ul>
<?
foreach(glob('{*.xml,*.webp,*.wmf,*.emf,*.html,*.wav,*.psd,*.eps,*.ai,*.iso,*.avi,*.mpg,*.mp4,*.mp3,*.7z,*.txt,*.png,*.tif,*.bmp,*.jpg,*.gif,*.zip,*.pdf}',GLOB_BRACE) as $file){
if(is_file($file)){
echo '<li><a href="',rawurlencode($file),'">',urldecode($file),'</a></li>';
}
}
?>
</ul>
</body></html>
青字の部分で指定した拡張子のファイルに対して、PHPファイルと同じフォルダ内のファイル名を拾いハイパーリンクを勝手に生成します。半角英数字以外のファイル名にも一応リンクを張るように、htmlspecialchars関数やurlencode関数ではなくrawurlencode関数でファイル名を取得していますが、ファイル名はぐちゃぐちゃになりますので(泣)、なるべく半角英数字でファイル名を付けたほうがいい気がします。
あ、そうそう。このままでは丸腰なので、必要に応じてBASIC認証等で守ってあげてくださいね。
参考にしたサイトたちはここらへん。
アップロード側の仕組みも作ったら便利だと思うけど今のところ手つかず。
2021-09-01追記
ファイル名をURLエンコードしてアップロードした場合、そのままのファイル名ででコードできるように、「<a href="',rawurlencode($file),'">',urldecode($file),'</a>」としてみました。
古い記事・新しい記事
- 古い記事 [2020年10月28日]
- ← 「#33cccc」「#66cccc」「#99cccc」のカラーグラデーションをまとめてみた。
- 新しい記事 [2020年11月17日]
- → アップロードのためだけのPHP
他にも「ウェブ・IT関係」カテゴリの記事はいかがですか。
- 我が家のNAS、LinkStation LS-V1.0TLが接続不能そして復活へ。
- PHPでランダムに選択問題を出し続ける仕組みをつくる。
- VPN環境でドメイン参加
- EC-CUBE 2.12をいじってみる。
- EC-CUBEの「表記ゆれ」を撲滅する。
- EASEUS Partition Master Home Editionで、パーティションのサイズを変えてみた。
- Firefox40以降でフォームのフォントがおかしくなる件の対応。
- フリーソフトでスケジュール管理はじめました。
- Excelで、ブックを閉じるときに自動的に上書き保存させたい。
- エックスサーバーのAWStatsをWindows8に対応させてみた。
アップロードのためだけのPHP | 煤式自動連結器からのピンバック | 2020年11月20日 #
[…] ディレクトリ内のファイルに勝手にリンクしてくれるPHP 特定のディレクトリ(フォルダ)にファイルを入れておくと、勝手に一覧のリストを作ってくれるPHPです。使い方としては「家で […]