ディレクトリ内のファイルに勝手にリンクしてくれる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関係」カテゴリの記事はいかがですか。
- CSSでヘッダ・フッタを固定してみる。IE6にも対応(いまさら?)。
- nexus7(2012)にAndroid5を入れると重くなった。
- au Galaxy S9 SCV38をUQmobileで使うためのAPN設定。
- 家庭内LANのルータをELECOM WRC-1167GHBK-Sに替えた。
- ieserverが終わったので、DDNS nowを使い始めた。
- このサイトはエロブログちゃうわ!!(怒)
- Windows10 64bitでFUJITSU ScanSnap S510を使う。
- レジや金庫内のお金を数えるための計算フォーム・改。
- ThunderbirdのWindows 64bit版をダウンロードする方法
- AVG 8をリンクスキャナなしでインストール
アップロードのためだけのPHP | 煤式自動連結器からのピンバック | 2020年11月20日 #
[…] ディレクトリ内のファイルに勝手にリンクしてくれるPHP 特定のディレクトリ(フォルダ)にファイルを入れておくと、勝手に一覧のリストを作ってくれるPHPです。使い方としては「家で […]