VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

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);

?>
モバイルバージョンを終了