テキストファイルの半角スペースが混じった値を取得すると、 半角スペース以降が何故か取れません。。。 有識者の方、ご教どうぞ授宜しくお願い致します。 ■ソース■
テキストファイルの半角スペースが混じった値を取得すると、 半角スペース以降が何故か取れません。。。 有識者の方、ご教どうぞ授宜しくお願い致します。 ■ソース■ foreach(file("./text.txt") as $Line) { echo $Line ; } ■text.txtのデータ 山本 太郎 ■$Lineの結果 山本
プログラム言語は、PHPです。
ベストアンサー
どうやっても現象が再現できません。 単純な空白(0x20)でそういうbugが起こるハズはない(あればとうにfixされている)ので、echo ではなく var_dump で出力してバイト数を確認するなどしてみてください。 あるいは下記のように16進表記で出力して本当に 0x20 になっているか確認してもいいかもしれません(データが読み込めていれば・・・ですが)。 foreach(file("./text.txt", FILE_SKIP_EMPTY_LINES) as $Line) { $tmp = []; for ($i=0; $i < strlen($Line); $i++) $tmp[] = sprintf('%02x', ord(substr($Line, $i, 1))); echo implode('-', $tmp) . "<b>"; } (file でなく)file_get_contens で全データを読み込んでみるとモアベターかもしれません。データ量が多いと大変でしょうから、問題の行のデータだけに絞ってやってみるとか工夫してください。 $str = file_get_contents("./text.txt"); $tmp = []; for ($i=0; $i < strlen($str); $i++) $tmp[] = sprintf('%02x', ord(substr($str, $i, 1))); echo implode('-', $tmp);
この返信は削除されました
質問者からのお礼コメント
ありがとうございました!
お礼日時:1/19 17:36