我有一些简单的PHP脚本可以帮助我完成每台服务器上的小任务。我只通过 CLI 运行它,因为并非我的所有服务器都有Apache,但我在所有服务器上都安装了PHP。 我想随时随身携带。
这是我的脚本方案:
dir_libs/top.php (top.php references all my classes and functions)
dir_logs/ (holds logs I may create)
runstats.php (this is what I initialize from CL)
以下是我在其中一台服务器上所做的事情:
runstats.php
<?php
require('/home/myuser/public_html/dir_libs/top.php'); // holds functions
require('/home/myuser/public_html/dir_logs/'); // holds logs from my functions
echo display_stats();
echo "\n---------------------\n";
?>
我显然需要更改绝对路径,具体取决于服务器,因为我并不总是保持相同 - 即使我克隆虚拟机。
我尝试了$_SERVER['DOCUMENT_ROOT']
,但似乎需要浏览器知道它的位置。
有没有人有建议? 我再次打算从命令行运行 runstats.php 。
答案 0 :(得分:0)
将路径存储在常量中,然后将其附加到文件中。
define('BASE', '/home/myuser/public_html/');
require(BASE . 'dir_libs/top.php');
答案 1 :(得分:0)
这通常使用__DIR__
魔术常量在PHP中完成,如下所示:
require_once(__DIR__ . '/path/to/file.php');
要从不同的嵌入式目录访问您的顶级,您可以执行类似这样的操作:
require_once(__DIR__ . '/../dir_libs/top.php');
对于5.3.0之前的PHP版本,您可以使用dirname(__FILE__)
代替__DIR__
。
对于一个真实的示例,您可以查看Laravel项目,该项目在.php
和public
目录中的bootstrap
文件中使用了一些不同的技巧来引用其他项目中的文件:
https://github.com/laravel/laravel/tree/v4.1.18
(我已链接到当前版本,以防以后更改。)
答案 2 :(得分:0)
在php 4中,添加了__FILE__
和__DIR__
常量。这些应该对你有帮助!
http://www.php.net/manual/en/language.constants.predefined.php