

失礼します。  
特定の文字列を含む画像ファイルを表示する方法が分からず困っています。

文字列：01  
画像ファイル名:xx_01_xxx.jpg

だとして、  
文字列が01の時、画像ファイルxx_01_xxx.jpgを表示する  
といった形です。

もし画像ファイル名に01が含まれていたら  
というif文でのコードは考えたのですが、そもそも文字列から画像を指定するので違うと思いました。

追記：  
試行錯誤したところ、glob関数を使って目的の動きを達成することができました。  
しかし、文字列が文字化けしてしまったりする事があり安定しません。

コードはこちらです。

[code]

    if(isset($code[0])){
        $code0 = substr($code[0], 3);
        $img0 = "img/".$code0."_*.jpg";
    }
    if(isset($code[1])){
        $code1 = substr($code[1], 3);
        $img1 = "img/".$code1."_*.jpg";
    }
    if(isset($code[2])){
        $code2 = substr($code[2], 3);
        $img2 = "img/".$code2."_*.jpg";
    }
    if(isset($img0)){
        foreach (glob($img0) as $val) {
            $i_img0 = $val;
        }
        print $i_img0;
    }
    if(isset($img1)){
        foreach (glob($img1) as $val) {
            $i_img1 = $val;
        }
        print $i_img1;
    }
    if(isset($img2)){
        foreach (glob($img2) as $val) {
            $i_img2 = $val;
        }
        print $i_img2;
    }
    
[/code]

$code[]の中身は5桁の数値になっています。  
今の状態ですと、12120のコードで120を取得したくても20しか取得できない問題もあります。  
12120だった場合、120と20のどちらかを柔軟に取得できるようにもしたいです。

ですがまずはファイル名が文字化けする問題からです。  
文字化けしないものもありますので原因が分かりません。  
何が問題になっているのでしょうか？


CC BY-SA 3.0
2015-03-05T13:49:46.927
7498
2015-03-06T11:15:05.783
2015-03-05T20:37:59.710
5985
5985
question
php
glob関数で取得したファイル名が文字化けする問題


今回の件に関しまして、皆様からの丁寧な回答により問題が解決しましたので回答とさせていただきます。

文字化けの件についてですが、文字コードの指定をUTF8にしていました。  
自分の理想としてはUTF8で動かしたかったのですが、

> mb_convert_encoding関数

こちらを使用しUTF8をシフトJISに変換したところ文字化けが直りました。  
UTF8でも文字化けしないようにするための知識もつけていけるように精進します。

今回もありがとうございました。


CC BY-SA 3.0
2015-03-06T11:15:05.783
7551
2015-03-06T11:15:05.783
5985
7498
answer