所以我的问题是,如果我包含一个php文件,主要的php将是路径。我无法很好地描述它,所以让我向您展示一些易于理解的代码:
这是我的网站:
本地主机/ mysite的/ index.php的
<?php
include('common/sayHello.php');
?>
我有一个管理文件夹
本地主机/ mysite的/管理/ index.php的
我有一些常见文件
本地主机/ mysite的/普通/ sayHello.php
<?php
$text = file_get_contents(helloText.txt);
echo($text);
?>
本地主机/ mysite的/普通/ helloText.txt
Hey! How you doing?
但它不起作用。主要&#34; mysite / index.php&#34;将寻找&#34; mysite / helloText.txt&#34;,以及&#34; mysite / admin / index.php&#34;将寻找&#34; mysite / admin / helloText.txt&#34;。
我可以正确引用helloText文件,而不使用DOCUMENT_ROOT吗?有没有办法在不改变URL路径的情况下包含文件?
你可能会说,我应该使用&#34; /&#34;在&#34; common / helloText.txt&#34;之前,但它会查找localhost / common / helloText.txt而不是localhost / mysite /...
答案 0 :(得分:0)
为此,我通常在配置中定义两个常量:
define('PATH_ROOT', '/var/www/vhosts/example.com/app/');
define('HTTP_ROOT', 'http://example.com/');
现在,我可以使用PATH_ROOT
轻松定义应用程序中的绝对路径,并在HTTP_ROOT
的网站内轻松定义绝对路径。
那么我们有类似的东西:
$myFile = 'some/path/foo.txt';
// write file to: /var/www/vhosts/example.com/app/some/path/foo.txt
file_put_contents('Hello world!', PATH_ROOT . $myFile);
// generate link to: http://example.com/some/path/foo.txt
sprintf('<a href="%s">Click me!</a>', HTTP_ROOT . $myFile);
如果您的应用程序移动了所有您需要做的就是修改这两个常量。