[PHP-users 35538] Re: HTTPエコーする場合に不明な文字(?)が付く現象への対策

マッチングッドさいとう saitou @ movin.co.jp
2011年 4月 11日 (月) 17:05:30 JST


・まずは現象(1)の回避をしたいがどうしたらいいか?

出力の前にob_clean()をされたときに、
状況は改善されますでしょうか。

・現象(2)にある不明文字はなにか?

BOMだと思います。

-----Original Message-----
From: php-users-bounces @ php.gr.jp [mailto:php-users-bounces @ php.gr.jp] On
Behalf Of kikikwan @ mail.goo.ne.jp
Sent: Monday, April 11, 2011 4:54 PM
To: PHP-users @ php.gr.jp
Subject: [PHP-users 35535] HTTPエコーする場合に不明な文字(?)が付く現象へ
の対策

phpバージョン 5.2.4

(phpinfoから抜粋)
mbstring.detect_order no value
mbstring.encoding_translation Off
mbstring.func_overload 0
mbstring.http_input pass
mbstring.http_output UTF-8
mbstring.internal_encoding ISO-8859-1
mbstring.language neutral
mbstring.strict_detection Off
mbstring.substitute_character

「現象」
(1)   phpからHTMLを出力したとき、目視で画面上部にすきまができたように見え
る。

(2)   このとき、ブラウザで「ソースを出力」しそれをエディタに出力すると
本来なら、<!DOCTYPE     >ではじまるはずだが
?????????<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
と、タグの前に不明な文字(?)があります。このときのエディタのエンコードは
UTF-8 LFCR。

「調査事項」
(1)  phpの関数で、出力する文字列のうち一番最初の文字を調べたところ「<」でし
た。

(2)  現象(2)のファイルをバイナリエディタでみた場合、ファイルの先頭部分は
--------|-0--1--2--3--4--5--6--7--8--9--A--B--C--D--E--F-|---0123456789ABCDE
F
00000000|ef bb bf ef bb bf ef bb bf ef bb bf ef bb bf ef |   ・ソ・ソ・ソ・
ソ・ソ・
00000010|bb bf ef bb bf ef bb bf ef bb bf ef bb bf 3c 21 |    ソ・ソ・ソ・
ソ・ソ<!
--------|------------------------------------------------|------------------
-
となっています。これが何を現わしているのかは不明。

(3)  phpで出力しているHTMLタグを含んだ同じ文字列を、phpを使用せず*.htmlとし
てwebサーバに
置きブラウズすると現象(1),(2)は発生しません。

「希望する結果」
<!DOCTYPE         >
<html>
<head>
</head>
<body>
</body>
</html>
と、一般的なタグのみを出力したい。
タグの前に不明ななにか(文字?制御文字?)を出力したくない。

「予想」
現象(1)の原因は、タグの前にこのなにかが出力されていることが原因ではないか?

「疑問、不明箇所、質問」
・まずは現象(1)の回避をしたいがどうしたらいいか?
・現象(2)にある不明文字はなにか?

現状の問題について、環境など不足情報がありましたらご指摘ください。

解決方法をご存じのかた、よろしくお願いいたします。

山下


_______________________________________________
PHP-users mailing list  PHP-users @ php.gr.jp
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3



PHP-users メーリングリストの案内