12

簡単に言えば、スクリプト内の非表示のゼロ幅改行文字 (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-->";

誰でも提供できるヘルプは大歓迎です。すべてのコード部分は、スクリプトから直接コピーして貼り付けたものです。

4

2 に答える 2

23

一部の.phpファイル (おそらく./functions/page.php含まれていByte Order Markます。IDE を使用している場合は、このファイルのエンコード プロパティを確認してください。

編集* nixを使用している場合、BOM付きのUTF-8ファイルを検索するエレガントな方法は? 助けるべきです。

于 2013-08-03T06:28:37.620 に答える