• ベストアンサー

file()からのmb_substr()について

下記ののような感じで テキストファイルから配列に入れて、行の先頭を取り出し 比較をしたかったのですが、うまく先頭だけを取り出せません 表示要素を見るとないはずの「"」が頭と最後についていました。 これが原因なのでしょうか? また削除することは可能でしょうか? 不可能な場合、他によい方法はありますか? まだ初心者ですが宜しくお願いします。 ●test.txt(内容) 12345 ●test.php(内容) $line = @file("test.txt"); $no = mb_substr($line[0],0,1,"utf-8"); print $line[0]."<br>"; print $no."<br>"; //問題なし↓ $line2 = "12345"; $no2 = mb_substr($line2,0,1,"utf-8"); print $no2; ●結果 12345      ←1が表示されない? 1

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

再現できませんね・・・ >表示要素を見るとないはずの「"」が頭と最後についていました。 というのはどうやって表示させたときのことでしょうか? >●test.txt(内容) >12345 print strlen(trim($line[0])); がどうなるか確認してください。 BOM付きのutf-8で保存されていませんか?お使いのエディタでutf-8nという指定があったらそちらを選んでください。普通のutf-8をutf-8nというのもおかしな話で、BOMを付加するときだけ特別に指定させるべきですけどね。 #メモ帳はBOM付きでしか落とせないので論外ですが(汗

ukontya2000
質問者

お礼

ありがとうございます。 BOMなしで保存したら問題なく表示されました。 完全にUTF-8で保存したら全てにおいて問題ないと勘違いしておりました。 今後はよく考えます。

関連するQ&A