考虑我的项目目录结构,如下所示,
-public_html
-projects
-folder1
index.php \\code is written here
+folder2
+downloads
我试图通过$_SERVER['DOCUMENT_ROOT']
获取根目录,但似乎返回的字符串不是我期望的形式。
我网站内的目录(基本上在)public_html/projects/folder1
。使用文档根,在网站上实现时返回的字符串如下,
如果要共享链接,则/home/site_name/public_html
无法正常工作,因为我使用它将文件存储在目录中。所以,我希望它应该返回www.site_name.com/downloads
__DIR__
提供了调用它的所有文档路径(folder1/index.php
),但我想进入主文件夹(public_html/downloads
),而不是在同一个文件夹中因为索引文件是。
是否有任何其他PHP功能可以帮助访问public_html中的下载文件夹,可以访问,例如www.sitename.com/downloads /...
答案 0 :(得分:3)
要返回当前php文件的文件夹,请使用此脚本。
$url = $_SERVER['REQUEST_URI']; //returns the current URL
$parts = explode('/',$url);
$dir = $_SERVER['SERVER_NAME'];
for ($i = 0; $i < count($parts) - 1; $i++) {
$dir .= $parts[$i] . "/";
}
echo $dir;
答案 1 :(得分:1)
您想使用$_SERVER['SERVER_NAME']
获取网站的根网址。您可以使用它来获取下载文件夹的URL。
$downloads_url = $_SERVER['SERVER_NAME'] . '/downloads/';
答案 2 :(得分:0)
constants.php:
define('PROTOCOL',(!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS'] == 'on')) ? 'https://' : 'http://',true);
define('DOMAIN',$_SERVER['HTTP_HOST']);
define('ROOT_URL', preg_replace("/\/$/",'',PROTOCOL.DOMAIN.str_replace(array('\\',"index.php","index.html"), '', dirname(htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES))),1).'/',true);// Remove backslashes for Windows compatibility
然后,在项目的索引use
中