PHP配置可能存在问题?
我买了一台新笔记本电脑,安装了新版本的XAMPP。我移动了一个我正在使用的系统,但它在这台计算机上运行不正常 我认识到的第一个问题是,它不包括相对于包含它的文件的位置的文件。我在PHP配置可能存在问题?,php,xampp,Php,Xampp,我买了一台新笔记本电脑,安装了新版本的XAMPP。我移动了一个我正在使用的系统,但它在这台计算机上运行不正常 我认识到的第一个问题是,它不包括相对于包含它的文件的位置的文件。我在includes/目录中有一个config.php文件以及我的include.php文件。在include.php文件中,我必须键入require'includes/config.php'即使config.php与include.php位于同一文件夹中。在我的另一台计算机上,我只需要做require'config.php
includes/
目录中有一个config.php
文件以及我的include.php
文件。在include.php
文件中,我必须键入require'includes/config.php'
即使config.php
与include.php
位于同一文件夹中。在我的另一台计算机上,我只需要做require'config.php'代码>
另外,由于包含的文件没有与我正在查看的主文件一起加载,所以变量和常量没有定义,所以它似乎是自动定义的
注意:在第6行的C:\xampp\htdocs\Xion\includes\include.php中使用未定义的常量DB_HOST-假定为“DB_HOST”
较新版本的PHP上的配置是否存在问题?通常PHP核心设置包含路径
也包含当前路径:它由
表示(一个点),添加到包含路径的列表中:
include_path=".;c:\php\includes"
引述:
在include路径中使用
,可以按其含义进行相对包含
当前目录。但是,显式地使用
包括。/file'
,而不是让PHP始终检查当前目录
每一项都包括在内
是的,PHP会将任何空名称(非引号字符串)处理为常量名称。如果未定义此常量(如您的情况),PHP会将其转换为字符串(不过会发出通知)。通知错误是因为您正在访问类似$someArray[DB_HOST]的数组。数组键周围应该有引号,比如$someArray['DB_HOST']。无引号是常量,键是字符串,而不是常量
包含路径问题也是相当标准的。如果您有以下文件:
index.php
includes/config.php
includes/include.php
如果加载index.php并包含文件includes/include.php
,则必须键入完整路径includes/include.php
。如果在include.php
中,您希望包含includes/config.php
。php将路径视为相对于加载原始脚本的位置(index.php)的路径。你可以这样想:
- 在脚本中,加载并运行
index.php
- 在
index.php
中包含includes/include.php
。这不会将您移动到includes/include.php
,而是获取includes/include.php
,并将代码带入index.php
includes/include.php
中的所有代码都像从index.php
中运行一样运行
- 您可以包含
includes/config.php
。从技术上讲,您仍然在index.php
中,因此您必须像从index.php
中调用一样引用该文件
要修复包含路径,您可以使用函数将完整路径添加到包含目录(或相对于包含),然后可以从路径中删除includes/
。如果在其他地方找不到该文件,PHP只会检查该文件是否在includes/
中。您也可以只更改php.ini或.htaccess文件中的指令