PHPのディレクトリパス/ファイルのリストは次のようになっています。
path1/path2/foo1_jpg
path1/foo2_png
path2/path3/bar_pdf
path2/
path1/
これらをjavascriptオブジェクトに変換したいと思います。「/」をピリオドに変換して、次のように言うことを考えました。
<script>
var files = new Array();
<?php $dirlist = getFileList("images",true); ?> //returns array of directory paths (and other info)
<?php foreach($dirlist as $file): ?>
files.<?=$file['name']?> = "$file['name']";
//where $file['name'] returns, for example, path1.path2.foo1_jpg
<?php endforeach; ?>
console.log(files);
</script>
私が抱えている唯一の問題は、ファイル名またはディレクトリが数字で始まるかどうかです。つまり、次のように言うことはできません。files.001.foo = "bar";
数字で始まる名前を処理するには、ドット演算子をオーバーロードする必要があると思います。それが最善の方法ですか、それとも別の方法がありますか?
私は基本的に"x1x2...xn/y1y2...yn/..."
、x_i、y_i、z_iなどが「/」以外の文字である形式のphp文字列をネストされたjavascriptオブジェクトに解析しようとしていますx1x2x3...xn.y1y2...yn.z1z2z3...zn = {};
。このユーザーは、区切られた文字列(彼の場合は「_」)に基づいてjavascriptオブジェクトを動的に追加しようとしていたため、ここで解決策を見つけたと思います。