PHPでディレクトリ内のファイル一覧をJSONで出力

サーバー内のある特定のディレクトリ内にあるファイル一覧を取得し、JSONで出力するPHPを作成する方法です。

サンプルコードの仕様


 
・ある特定の文字列を含むファイル名のみ抽出できるように引数にキーワードを指定します。
 
・配列からJSONへの変換は、PHP5.3標準のjson_encodeを使用します。
 

日本語対応


 
しかし日本語部分がunicodeでエスケープされて出力されてしまうので、下記サイトのラッパー関数json_xencodeを使用しました。
PHPでUnicodeアンエスケープしたJSONを出力する関数 – オープンソースこねこね
 
※PHP5.4以降では、JSON_UNESCAPED_UNICODEのオプションを指定すると回避できるようです。
 

<?php
mb_regex_encoding("UTF-8");
if(isset($_GET['key'])) {
  $key = $_GET['key'];
}
$filelist = array();
$path = "/var/www/wp/wp-content/uploads/table/";
if ($handle = opendir($path)) {
  while (false !== ($file = readdir($handle))) {
    if (mb_ereg_match(".*$key.*",$file)) {
      $filelist[] = $file;
    }
  }
  closedir($handle);
}
$filelist = json_xencode($filelist);
print_r($filelist);

?>
関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください