包含文件时出现奇怪的BOM字符错误

时间:2012-08-03 20:12:44

标签: php

我有一个非常奇怪的问题,当我下载任何PHP脚本,并尝试在本地安装它时,我遇到了麻烦。我提到下载任何php脚本,因为,如果我在本地创建一个php脚本,无论它有多少include语句,或者它包含多长时间,它们都能正常工作。

上次,我在WP安装时遇到了一些问题See my other question

我为蛋糕 croogo 燃料燃料cms做了4次 git clone 并且所有人都遇到同样的问题:

  • 奇怪烦人的 BOM charachter in include make make throw fatal error:

      

    遇到PHP错误

         

    严重性:警告

         

    消息:require_once(base_module_model.php):无法打开流:没有这样的文件或目录

         

    文件名:models / users_model.php

         

    行号:3   致命错误:require_once():无法打开所需的'base_module_model.php'(include_path ='。:/ usr / share / php:/ usr / share / pear:/ usr / share / ZF / library:/ usr / share / ZF / extras / library')ª。!ª(!“(!第3行

    )      

    调用堆栈:   0.0002 327540 1. {main}()PATH_TO_FUEL / index.php:0
      0.0006 329032 2. require_once('ãå,/ PATH_TO_FUEL / fuel / codeigniter / core / CodeIgniter.php')PATH_TO_FUEL / index.php:236
      0.0109 544260 3.登录 - > __ construct()PATH_TO_FUEL / fuel / application /../ modules / user_guide /:267
      0.0269 1002572 4. Fuel_Loader-> module_model()PATH_TO_FUEL / fuel / modules / fuel / controllers / login.php:28
      0.0269 1002660 5. Fuel_Loader-> model()PATH_TO_FUEL / fuel / application / third_party / fuel / Loader.php:107
      0.0337 1469404 6.模块:: load_file()PATH_TO_FUEL / fuel / application / third_party / fuel / Loader.php:237
      0.0338 1482504 7. include_once('_ö,/ PATH_TO_FUEL / fuel / modules / fuel / models / users_model.php')PATH_TO_FUEL / fuel / application / third_party / MX / Modules.php:142

由于几乎所有文件都在发生,我现在肯定,问题不在于文件的内容,而是其他东西,可能是编码不匹配。

我的任务是:

  • 上面的问题表明我的系统编码可能有问题吗? (我主要使用 vi Netbeans 作为IDE。)

  • 如果编码有问题(使用我的机器或文件),是否有永久性问题解决方法?

已安装的扩展程序列表(使用 php -m 获取它们):

[PHP Modules]
apc
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
json
libxml
mbstring
mcrypt
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
SQLite
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
xsl
zip
zlib

[Zend Modules]
Xdebug

1 个答案:

答案 0 :(得分:0)

为了确认问题确实是您的版本控制操作正在添加BOM字符,您可以:

  1. 查看一小组文件进行测试,并确认您已看到问题。
  2. 使用vi或vim手动“清理”每个文件,例如通过:set nobomb
  3. 确认问题消失。
  4. 如果工作,那么你知道你正在咆哮错误的树。如果确实有效,那么您就知道确实存在问题 - 可能是您的git设置。