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

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

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

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

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

コードはこちらです。

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

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