私は簡単に言うと、スクリプト内の非表示のゼロ幅改行文字(U + FEFF)を削除しようとしています。それが表示されたWebページは http://cynicode.co.uk です(インデックスページはいじられており、現時点で正しく機能しているのはこのページだけです)。
ページのhtml要素を見ると、次のことがわかります。
重要な点は、< body >
および< !--5-- >
。これをホバーすると、\ufeff
キャラクター。問題は、スクリプトを見ると、そのような文字が存在しないことです。
私はPHPとHTMLを使用してこのページを構築し、< !--4-- >
および< !--5-- >
は以下で構成されます。まず、実際のインデックスページ自体:
<?php
echo "<!--4-->";
echo "<head><meta charset='utf-8' /><link rel='shortcut icon' type='image/ico' href='./images/CyniCode.ico'>
<title>CyniCode :: Index</title>
<meta name='description' content='The Cynic's paradise! Home of Cynical.' />
<meta name='author' content='Cynical' />
<meta name='keywords' content='Cynical;Blog;Code' />
<link type='text/css' rel='stylesheet' href='./css/mystyle.css' />
<link rel='shortcut icon' type='image/ico' href='./images/CyniCode.ico'>
<link href='http://fonts.googleapis.com/css?family=Muli' rel='stylesheet' type='text/css' />
<script type='text/javascript' src='http://static.proofiction.net/jquery/jquery-1.9.1.min.js'></script>
<script type='text/javascript' src='http://static.proofiction.net/jquery/loginwait.js'></script>
<script type='text/javascript' src='http://static.proofiction.net/jquery/googleAnalytics.js'></script>
<script type='text/javascript' src='./http://static.proofiction.net/jquery/jquery.bxslider.js'></script>
<script type='text/javascript' src='./http://static.proofiction.net/jquery/jquery.bxslider.min.js'></script>
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script type='text/javascript'><!--
google_ad_client = 'ca-pub-xxxxxxxxxxxx';
/* BiggerNavBox */
google_ad_slot = '3977705372';
google_ad_width = 300;
google_ad_height = 600;
//-->
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).Push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-xxxxxxxx-1', 'cynicode.co.uk');
ga('send', 'pageview');
</script>
</head>";
require_once './functions/page.php';
これは索引ページを構成します。参照されているpage.phpスクリプトは、ページをすばやくクリーンに設定するためのチートです。ただし、ページ上の2つのコメントには、わずかな違いがあります。これは、2つのコメントの残りの違いです。
<?php
echo "<!--5-->";
誰かが提供できるどんな助けでも大歓迎です。すべてのコードは、スクリプトからの直接のコピーと貼り付けでした。
一部の.php
ファイル(おそらく./functions/page.php
にはByte Order Mark
が含まれています。一部のIDEを使用している場合は、このファイルのエンコードプロパティを確認してください。運が良ければ、ファイルを削除できます。
Edit* nixを使用する場合、 BOMでUTF-8ファイルを検索するためのエレガントな方法? が役立つはずです。
同様の問題の解決策は次のとおりです: DOCTYPEタグを無効にするHTMLの余分なBOM文字
基本的に問題の原因はPHP UTF8 with BOM
、それらをUTF-8 without BOM
は問題を解決します。