我已经将我的本地开发系统上的PHP升级到版本5.3.0,并且当我在application.ini中使用常量时出现了一些问题 - 请按照手册http://framework.zend.com/manual/en/learning.quickstart.create-project.html进行操作:
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
导致:
Warning: require_once(APPLICATION_PATH/Bootstrap.php) [function.require-once]: failed to open stream: No such file or directory in Zend\Application.php on line 320
任何想法?
解决:
实际上我的常量名是_DIR_APPLICATION(上面的代码是从ZF手册中复制的) - 问题在于开头的下划线 - 似乎PHP 5.3.0中的parse_ini_file()不会替换这样命名的常量。 / p>
简短测试 - 您需要两个文件:
test.ini
bootstrap.path = _DIR_APPLICATION "/Bootstrap.php"
bootstrap.class = "Bootstrap"
和test.php
<?php
define('_DIR_APPLICATION', 'test');
$data = parse_ini_file('test.ini');
print_r($data);
尝试运行,然后将常量名称更改为“DIR_APPLICATION”(在两个文件中)并比较结果;)
答案 0 :(得分:0)
您的问题可能与php 5.3.0中对'open_basedir'的更改有关。
比照http://www.php.net/manual/fr/ini.core.php#ini.include-path
open_basedir值可以在httpd.conf中设置,在php.ini中或在运行时使用ini_set()设置。 我建议用phpinfo()查看这个值,比较你正在使用的2个PHP版本。