記録

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

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

    安倍首相にお願いしたいこと。LCC(格安航空会社)を全国的に!!

    安倍首相にお願いしたいこと。LCC(格安航空会社)を全国的に!!っ…

  3. 記録

    才能*努力

    才能*努力。才能っていうのは、好きだということだと思います。好き…

  4. 記録

    映画:寄生獣、大ヒット上映中らしいですが!!

    映画:寄生獣、大ヒット上映中らしいですが観に行く予定はないです{今…

  5. 記録

    VRは直ぐには流行らない予感。起爆剤はやはりゲーム!?

    VRは直ぐには流行らない予感。特にゲームのVRは・・・流行らない予感…

PAGE TOP