記録

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

<?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. 記録

    イラストレーターの新機能使ってみた。

    イラストレーターのグラデーションに新たに新機能が追加されてみたので…

  2. 記録

    [悲報]無職になりました?。

    一週間ぐらいまえにお仕事が決まって働いていたのですが、先週の金曜日に…

  3. 記録

    昔と今はかなり違っているけど自分にとってはあまり変わらない。

    おはよう御座います🐔。今日は暖か陽気になるそうですね。ここ数…

  4. 記録

    すきま産業。

    すきま産業、簡単に言うと車輪の再発明かニッチ戦略だと思って頂ければよ…

  5. 記録

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

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

  6. 記録

    この映画は見逃せない。なので観に行きます!その名は!?

    この映画は見逃せない。なので観に行きます!その名は!?「オデッセイ…

2018年4月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

カテゴリー

PAGE TOP