[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 メーリングリストの案内