包含文件中的杂散字符

时间:2011-10-04 15:23:23

标签: php codeigniter

看一下这张图片

http://cl.ly/3L1v3k1R3M1q2F433q3O

链接中的源代码是混乱的。此外,将文件另存为html会在doctype上方生成一些奇怪的字符,如此处所示

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'); ?>

...这也是文件中的第一行。所以,我的问题是,为什么在doctype之前会出现流浪字符,以及在哪些方面可以解决这个问题?

更多信息:此网站(downtowngreensboro.net)正在使用CodeIgniter,标头和其他文档采用UTF-8编码。


经过进一步探索,似乎此问题仅限于CodeIgniter。博客部分(Wordpress)显示了干净的源代码。

2 个答案:

答案 0 :(得分:0)

“奇怪的字符”似乎是空字节:将源代码传递给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|

<!DOCTYPE标记之前总共有239个空字节。 (hexdump省略了其中一些,标有*。)我不知道它们来自哪里 - 你应该在十六进制编辑器中查看你的PHP源文件,看看它们是否是那里。

答案 1 :(得分:0)

事实证明CodeIgniter中的一个自动加载的帮助文件导致了这个问题。在文件的末尾是一个关闭的php标记,CodeIgniter警告它。删除它完全解决了问题。