我正在开发一个php项目,我遇到包含文件的问题.
我有一个PHP脚本,位于myapp/reports/index.php.提交表单时,它会向位于myapp/reports/phpHander/submit.php的另一个phpscript执行ajax发布.
然后,Submit.php必须包含一个用于发送电子邮件的php脚本.这样做是为了确保可以反复使用相同的代码,而无需在每次需要时对其进行输入.这个PHP脚本位于../../administrator/classes/send.php.
到目前为止工作正常,但send.php脚本包含另一个文件来获取应用程序配置设置,该文件位于administrator/appConfig.php中.问题是即使我输入了http://localhost/myapp/administrator/appConfig.php的完整网址,也找不到这个appConfig.php .
我究竟做错了什么.我正在使用php include函数来执行此操作并且其工作用于其他所有内容,但它似乎有问题,然后包括来自不同位置的另一个脚本.
感谢您的任何帮助,您可以提供.
http://localhost/myapp/administrator/appConfig.php 只是URL路径.
您需要绝对的文件路径C:/wamp/www/myapp/administrator/appConfig.php(Windows)或/var/www/myapp/administrator/appConfig.php(Linux)
无论如何最好的方法是使用常量在根应用程序目录中创建一个文件"dirs.php":
define('ROOT_DIR', dirname(__FILE__));
Run Code Online (Sandbox Code Playgroud)
哪里dirname(__FILE__)将是您的app目录的绝对路径.
有了这些知识,您可以通过以下方式包含文件:
MYAPP /报告/ index.php文件:
require_once('../../dirs.php');
include(ROOT_DIR . '/administrator/appConfig.php');
Run Code Online (Sandbox Code Playgroud)
MYAPP /报告/ phpHander/submit.php:
require_once('../../../dirs.php');
include(ROOT_DIR . '/administrator/appConfig.php');
Run Code Online (Sandbox Code Playgroud)