Logging

たった数行のプログラムでドツボにはまる。

<?php
$command = "ls -m img";
exec($command,$val,$chk);
//imglist
$imglist = explode(",",implode("",$val));
if(is_array($imglist)){
    foreach ($imglist as $key => $value) {
        $img64[$key] = base64_encode(file_get_contents("img/".trim($value)));
        $path_parts = pathinfo($value);
        $path_parts['extension']=="jpeg"?"jpg":$path_parts['extension'];
?>
<div><a href="./img/<?=trim($value)?>"><?=$value?></a><br><img src="data:image/<?=$path_parts['extension']?>;base64,<?=$img64[$key]?>"></div>
<?php
    }
}
$obj["imglist"] = implode("\n\n",$img64);

ls -m というコマンドをPHPのexecという関数を使用し
画像リストを取得しようとしてどつぼにハマった・・・。
この関数、exec(“ls -m”)と書くと$valの中に配列として返却されるのだが、複数の配列に別れて返却される。なので一度、implodeを使用して一度、文字列に戻す必要がある。そしてカンマ区切りで再度、文字列分離する。

これでほっと一息つくとアウトだ!
配列化した値の前後に空白部分が入っていたり改行コードが入っていたりして画像を参照することが出来ないのだ。そのため、trim関数を使用して取り除く必要がある。

コマンドを使用して画像をリスト化して参照するメリットは何かと言えば数百枚の画像を列挙するときなどに高速で参照化することが出来るのだ。因みにコマンドでファイルの検索を行うという事なので本領発揮すると思います。

是非、お試しあれ。







    「の」だけ。前のページ

    GCPではサーバ上から送信が出来ないだから代替えサービス。次のページ

    関連記事

    1. Logging

      クロスプラットフォーム開発(アプリ)をPythonで行う。

      PyQt5でクロスプラットフォーム開発(アプリ)を行う事が出来るだっ…

    2. Logging

      そろそろ春の陽気になる頃かな?

      そろそろ春の陽気になる頃かなとか思っていますが・・・・。今日はま…

    3. Logging

      映画とゲームの二本立て。

      https://www.youtube.com/watch?v=f…

    4. Logging

      1秒先 向かう者と ただ訪れる者

      1秒先 向かう者と ただ訪れる者のショートフィルムが良い感じ+最後に…

    5. Logging

      radiko[ラジコ]のWindowsアプリがないので作りました。

      昔、ラジコのWindowsアプリが存在していたのだけど今は使えなくな…

    6. Logging

      js初心者さんのお勉強:思いつき写経。

      js初心者さんのお勉強をvlogとして昨日撮りました。もっと簡…

    2018年4月
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30  

    カテゴリー

    アーカイブ

    PAGE TOP