- ベストアンサー
require_onceの結果について
- php Ver5.5.28を使用したlinux上でのrequire_onceの結果について
- index.phpファイルに<!DOCTYPE html>タグとテストタイトルを含んだHTMLコードを記入し、test.phpファイルにaaa変数の設定と表示を記入したが、実行結果のHTMLに不明なコードが追加された
- test.phpファイルを空のコードで実行しても不明なコードが生成される問題が発生している
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
これは典型的な文字コードの問題ですね。PHPなどのプログラム公文には何の問題もありません。 NTTレンタルサーバとの事ですのでサーバ側の設定は事実上、User任意では変更出来ないため、PHPファイルとHTMLファイルの文字コードを何とかして解決するしか方策は無いと思われ…。 恐らくはPHPファイルの改行コードとBOMが引っ掛かってるんではないかと推測。 ・UTF-8, 改行LF, BOM無 ~でPHPを上書き保存し直してみてください。特にBOM有だとよくこの様なゴミが出やすいので。 既に該当ファイルが全てその様になっている場合、サーバ側のキャッシュが残っており最新版のファイル情報が反映されていない可能性もありますので。数時間程度、待ってから確認してみてください。 それでもダメならちょっとお手上げと言うか、実際に弄りながらでないと何とも言えないので…そちら側で直にNNTさんに問い合わせして貰うしかないと思いますが。通常、この手の個別質問にはノーコメントが原則なので…やっぱりもうお手上げかも。
その他の回答 (2)
環境が違いますが私がやってるサイトのあるレンタルサーバー上でソースをコピーしてみましたがその黒丸らしきものは出ませんでした。 小さくてよく見えないのですが、多分よくお目にかかる文字化けの時に出る黒いひし形の中に?が入ったやつですよね?最初の一文字目だけですし、本来文字の無い場所ですので私は同様の経験がありません。 setlocale(LC_ALL, 'ja_JP.UTF-8'); をtest.phpの最初に書き加えても駄目ですかね? 文字化けとは違うと思うのですが、私がよくやるおまじないです。。。
補足
ありがとうございます。 <?php setlocale(LC_ALL, 'ja_JP.UTF-8'); $aaa = "変数に文字を設定します。"; print $aaa; ?> で試しましたが、文字化けの時に出る黒いひし形の中に?が入ったやつが同じように出てしまいます。ちなみに、サーバはNTTコミュニケーションのBizメール&ウェブ エコノミーを利用しています。
いったいどこがゴミなのですか? 期待通りに出力されてるように見えるのですが。、
補足
画像が小さくてすいません。 <p>●変数に文字を設定します。</p> ●が余分に出力されます。 ※バイナリーエディターでコードは調べていませんが、説明の都合上●とさせていただきました。
お礼
基本的なミスでしたが、PHP側を追いかけ過ぎていました。 本当にありがとうございました。
補足
ありがとうございました。 一部ファイルがBOM有りで保存されてることが分かりました。 UTF-8N(TeraPad)で保存し直して解決しました。