Бродячие символы во включенном файле - PullRequest
0 голосов
/ 04 октября 2011

Посмотрите на это изображение

http://cl.ly/3L1v3k1R3M1q2F433q3O

Исходный код в ссылке перемешан. Кроме того, сохранение файла в формате html приводит к появлению некоторых странных символов над типом документа, как показано здесь

http://cl.ly/2F2y2Z353M2B2m051Y0b

Исходный код заголовка php начинается следующим образом:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="en">
<head>
....

Кроме того, заголовочный файл включен вверху другого файла с помощью

<?php include ('includes/public_header.php'); ?>

... которая также является первой строкой в ​​файле. Итак, мой вопрос: почему перед доктипом есть случайные символы и каким образом я могу решить эту проблему?

Немного больше информации: этот сайт (downtowngreensboro.net) использует CodeIgniter, а заголовок и другие документы имеют кодировку UTF-8.


После дальнейшего изучения кажется, что эта проблема ограничена CodeIgniter. Раздел блога (Wordpress) показывает чистый исходный код.

Ответы [ 2 ]

0 голосов
/ 05 октября 2011

Оказывается, проблема была вызвана автоматически загруженным вспомогательным файлом в CodeIgniter. В конце файла был закрывающий тег php, против которого CodeIgniter предупреждает. Удаление полностью решило проблему.

0 голосов
/ 04 октября 2011

"Странные символы" кажутся нулевыми байтами: отправляя исходный код на hd, я вижу это:

00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000000e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 3c  |...............<|
000000f0  21 44 4f 43 54 59 50 45  20 68 74 6d 6c 20 50 55  |!DOCTYPE html PU|
00000100  42 4c 49 43 20 22 2d 2f  2f 57 33 43 2f 2f 44 54  |BLIC "-//W3C//DT|
00000110  44 20 58 48 54 4d 4c 20  31 2e 30 20 54 72 61 6e  |D XHTML 1.0 Tran|
00000120  73 69 74 69 6f 6e 61 6c  2f 2f 45 4e 22 20 22 68  |sitional//EN" "h|

Это всего 239 нулевых байтов перед тегом <!DOCTYPE.(В hexdump некоторые из них пропущены, помечены *.) Однако я не уверен, откуда они берутся - вы должны посмотреть свои исходные файлы PHP в шестнадцатеричном редакторе, чтобы увидеть, есть ли они там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...