書き残し

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

<?php
$command = "ls -m img";
exec($command,$val,$chk);
//imglist
$imglist = explode(",",implode("",$val));
if(is_array($imglist)){
    foreach ($imglist as $key => $value) {
//        $ch = curl_init(); // 初期化
//        curl_setopt( $ch, CURLOPT_URL, "https://zip358.com/tool/imglist/img/".$value );//URLの設定
//        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); // 出力内容を受け取る設定
//        $result = curl_exec( $ch ); // データの取得
//        curl_close($ch); // cURLのクローズ
//        $img64[$key] = base64_encode($result);
        $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);
//print json_encode($obj);

 
ls -m というコマンドをPHPのexecという関数を使用して
画像リストを取得しようとしてハマった・・・。
この関数、exec(“ls -m”)と書くと全部返却値が返ってくる前に
変数に値を代入してくれるという何とも厄介な代物です。
処理するコマンドによるのですが・・そうなる場合があります。
なので第三引数まで書いて処理することが望ましいです。
また返却値は配列で返ってくるのでそれを一度、文字列化を行い
自分が取得したい値を再度処理を加えることが望ましいです。
今回、ディレクトリの画像ファイル参照し
画像読み込みをbass64のエンコードを行って
画像をIMGタグに入れ込むといった一連の流れを上記では
記述しています。
ちなみにTrimも行っています、
ls -m の場合、文字の前後に・・・空白部分があるので、
get_file_contentsを行う前にその処理を行う必要がありますが
画像名に先頭や後方に空白文字がある場合は一工夫行う必要がありますが。
今回は簡易的な処理のため、このよう感じで
大丈夫だと思います。
 
 

The following two tabs change content below.
zip358と申します。 まったりWEB日誌を更新している中の人です? 趣味は映画鑑賞とブログ書きです、 こちらで生活できるようになるのが目標です。 ブックマークやシェアして頂けると励みになります。 どうぞよろしくお願い致します。

関連記事

  1. 書き残し

    laravel5の古いバージョンをインストールする。{laravel5.2}

    laravel5の古いバージョンをインストールする。{laravel…

  2. 書き残し

    PHPで自前の関数をガッと放り込むとjquery…!!

    デモサイトはこちらから。https://zip358.com/to…

  3. 書き残し

    これから先のSEO、AI:SEOというものなのかも。

    これから先のSEO、AI:SEOというものなのかもと下記の記事を読…

  4. 書き残し

    javascriptの並列処理について

    javascriptの並列処理についてdemoサイトを…

  5. 書き残し

    スカイプを多重起動して複数のアカウントを使用する方法まとめ。

    スカイプを多重起動して複数のアカウントを使用する方法が記載していたの…

  6. 書き残し

    centOS7のインストール注意点(´Д`)はうぅ。

    centOS7のインストール注意点は最小限のインストールにしないこと…

2018年4月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アクセスカウンター😅

とある高知県の気温や湿度

Twitter でフォロー

PAGE TOP