記録

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

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

    3月のライオンを今頃、前半と後半を観る。

    3月のライオンを今頃、前半と後半を観る。どこかみんな不幸せなところが…

  2. 記録

    自分はふがいないと思ってる、あなた・・・ry

    ふがいないとは「情けないほど意気地がない。まったくだらしがない。」…

  3. 記録

    何もなくて当たり前が悲しいかな。

    {「2000年問題って大したことなかったですね!」と当時小学生だった…

  4. 記録

    AndroidStudioでアプリ開発を行おうとしている。

    AndroidStudioでアプリ開発を行おうとしているのだけど…

  5. 記録

    映画、亜人を観てきましたよ。

    映画、亜人観てきましたよ。絶妙な映像かなとアニメも原作の漫画も見てい…

  6. 記録

    四宮しのの新刊「俺は性格が悪い。」が、5月15日に茜新社より発売された。

    『俺は性格が悪い。』が面白そう!?。中身を観たわけではないのですが・…

PAGE TOP