При использовании функции php include include успешно выполняется, но он также выводит char перед выводом вывода include, char имеет шестнадцатеричное значение 3F, и я понятия не имею, откуда он берется, хотя, похоже, происходит с каждым включением.
Сначала я подумал, что это кодировка файлов, но, похоже, это не проблема. Я создал тестовый пример, чтобы продемонстрировать это: (ссылка больше не работает) http://driveefficiently.com/testinclude.php этот файл состоит только из:
<? include("include.inc"); ?>
и include.inc состоит только из:
<? echo ("hello, world"); ?>
и все же вывод: "?Привет, мир" где? - это символ со случайным значением. Это ценность, происхождение которой я не знаю, и иногда она немного портит мои сайты.
Есть идеи, откуда это могло взяться? Сначала я подумал, что это может быть связано с кодировкой файлов, но не думаю, что это проблема.






Я вижу hello, world на странице, на которую вы ссылаетесь. Никаких проблем, которые я вижу ...
Я использую Firefox 3.0.1 и Windows XP. Какой браузер / ОС вы используете? Возможно, это может быть проблемой.
Символ 3F на самом деле является вопросительный знак, он не отображается как один.
Я получаю те же результаты, что и Томас, без вопросительного знака.
Теоретически это может быть некоторая проблема с веб-прокси, но я склонен подозревать случайный вопросительный знак в вашей разметке PHP ... который, возможно, вы уже исправили, поэтому мы не видим проблемы.
Он не отображается на отображаемой странице в Firefox или IE, но вы можете увидеть забавного персонажа при просмотре исходного кода в IE.

Это на машине с Linux? Не могли бы вы найти и заменить на vim или sed, чтобы узнать, можно ли таким образом избавиться от 3F?
Если он в Windows, попробуйте открыть include.inc с помощью Блокнота, чтобы посмотреть, виден ли забавный символ и его можно удалить.
Мне также было бы любопытно посмотреть, что произойдет, если вы скопируете код из включения и просто запустите его самостоятельно.
Ваш веб-сервер (или ваш текстовый редактор) очевидно включает в документ Спецификация. Я не вижу мошеннического символа в моем браузере, за исключением случаев, когда я явно устанавливаю кодировку сайта Latin-1. Затем я вижу две (!) Спецификации UTF-8.
/ EDIT: Из того факта, что существуют спецификации два, я прихожу к выводу, что спецификация фактически включена вашим редактором в начало файла. Какой редактор вы используете? Если вы используете Visual Studio, вы должны сказать «Сохранить как…» в меню «Файл», а затем нажать кнопку «Сохранить с кодировкой…». Там выберите «UTF-8 без спецификации» или что-то подобное.
Вы видите знак порядка байтов UTF-8:
The UTF-8 representation of the BOM is the byte sequence EF BB BF, which appears as the ISO-8859-1 characters  in most text editors and web browsers not prepared to handle UTF-8.
PHP не понимает, что эти символы должны быть «скрыты», и отправляет их в браузер, как если бы они были обычными символами. Чтобы избавиться от них, вам нужно будет открыть файл с помощью «правильного» текстового редактора, который позволит вам сохранить файл как UTF-8 без ведущей спецификации.
I'd also be curious to see what happens if you copy the code out of the include and just run it by itself.
Марк: это решение для виртуального хостинга, поэтому я не могу получить доступ к файлу через оболочку. Однако, как вы можете видеть здесь, нет символов, которых не должно быть, и запуск того же файла в качестве сценария не создает этот символ. (Компания виртуального хостинга не оказала помощи, постоянно говоря мне, что это проблема браузера).
Теперь вы можете выполнить глобальную настройку, описанную здесь: stackoverflow.com/questions/5406172/utf-8-without-bom