ディレクトリ内のファイルに勝手にリンクしてくれる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関係」カテゴリの記事はいかがですか。
- ieserverが終わったので、DDNS nowを使い始めた。
- エックスサーバーでmod_pagespeedを試してみた。
- EPSON Colorio PX-105をWindows2000で無線LAN接続できた。
- さらば煤式自動連結器。そして伝説へ…
- EC-CUBE 2.12をいじってみる。
- 白紙のPDFファイル
- ウェブサイトの訪問者数が50倍以上になった!!
- PWA(Progressive Web Apps)を用いた「ホーム画面に追加」機能(Service Worker)で、ウェブサイトがまるでアプリのようになる。
- Microsoft「フォトストーリー3」で16:9のスライド動画を作る。
- Firefoxのアドオン、Greasemonkeyの2ちゃんねる用スクリプトで、外部リンクがうまく開かなくなったのを修正してみた。
アップロードのためだけのPHP | 煤式自動連結器からのピンバック | 2020年11月20日 #
[…] ディレクトリ内のファイルに勝手にリンクしてくれるPHP 特定のディレクトリ(フォルダ)にファイルを入れておくと、勝手に一覧のリストを作ってくれるPHPです。使い方としては「家で […]