Я пытаюсь, просто положить, удалить в моем скрипте символ с нулевой шириной строки (U + FEFF). Веб-страница, на которой он появился, находится по адресу 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, на который делается ссылка, – это мой чит для быстрой и чистой настройки страницы. Однако … существует небольшая разница между двумя комментариями на странице. Это остающаяся разница между двумя комментариями.
<?php echo "<!--5-->";
Любая помощь, которую может предложить любой человек, заслуживает высокой оценки. Все фрагменты кода были прямыми копиями и пастами из моих сценариев.
Некоторые из ваших .php
файлов (возможно, ./functions/page.php
содержат ./functions/page.php
Byte Order Mark
. Если вы используете некоторую среду IDE, проверьте свойства кодировки этого файла и, если повезет, вы сможете ее удалить.
Редактировать Если вы используете * nix, Элегантный способ поиска файлов UTF-8 с помощью спецификации? должен помочь.
Вот решение аналогичной проблемы: дополнительный символ спецификации в HTML, недействительный тег DOCTYPE
В основном источником проблемы являются файлы PHP, закодированные в UTF8 with BOM
, кодирование их в UTF-8 without BOM
этой проблемы.