Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:如何获取当前url的目录深度?_Php_Url_Organization - Fatal编程技术网

PHP:如何获取当前url的目录深度?

PHP:如何获取当前url的目录深度?,php,url,organization,Php,Url,Organization,我正在为我公司的网站开发404页面,它有一个$depth变量,上面写着“./site/”。这适用于基本目录中的任何错误URL,但子文件夹中的任何内容都是使用$depth变量从错误的位置抓取css文件。我尝试了$depth='/site/',但它根本没有抓到任何css文件。我的问题是,我如何让PHP动态计算出$depth,特别是要放入的。/的数量?如果我能得到一个数字或什么,这很容易,但我似乎找不到一个快速,简单的方法来做到这一点 编辑:事实证明,404.php文件只在一个位置,而不管坏url引用

我正在为我公司的网站开发404页面,它有一个
$depth
变量,上面写着“./site/”。这适用于基本目录中的任何错误URL,但子文件夹中的任何内容都是使用
$depth
变量从错误的位置抓取css文件。我尝试了
$depth='/site/'
,但它根本没有抓到任何css文件。我的问题是,我如何让PHP动态计算出
$depth
,特别是要放入的
。/
的数量?如果我能得到一个数字或什么,这很容易,但我似乎找不到一个快速,简单的方法来做到这一点


编辑:事实证明,404.php文件只在一个位置,而不管坏url引用的是哪个目录。所以,我真正的问题可能根本与php无关。为什么从
www.siteurl.com/404
访问404页面时,会在一个文件夹中获取css文件,而从
www.siteurl.com/foo/bar
访问404页面时,会从另一个文件夹中获取相同名称的css文件?

您必须将已知的网页路径映射到已知的磁盘路径(如web/diskroot)。根据这些信息,您可以导出当前网页指向的位置。

您必须将已知网页映射到已知的磁盘路径(如web/diskroot)。根据这些信息,您可以导出当前网页指向的位置。

使用CSS文件的绝对URL,以避免这样的路径混乱


如果出于任何原因,这不适用于您,请尝试查看
$\u服务器
数组,特别是
$\u服务器['PHP\u SELF']
$\u服务器['DOCUMENT\u ROOT']

使用CSS文件的绝对URL,以避免这样的路径混乱


如果出于任何原因,这不适用于您,请尝试查看
$\u服务器
数组,特别是
$\u服务器['PHP\u SELF']
$\u服务器['DOCUMENT\u ROOT']

如果您只是想在HTML头部引入CSS,您可以使用/.CSS

通过在开始时使用/,您告诉浏览器转到站点的根目录以查找请求的站点

如果需要通过PHP获得路径,可以使用

$_SERVER['DOCUMENT_ROOT']

这将为您提供站点根目录的直接路径,您可以从该目录构建。

如果您只是尝试引入CSS,您可以在HTML头部使用/.CSS

通过在开始时使用/,您告诉浏览器转到站点的根目录以查找请求的站点

如果需要通过PHP获得路径,可以使用

$_SERVER['DOCUMENT_ROOT']

这将为您提供站点根目录的直接路径,您可以从中构建。

这是我几年前编写的一个函数,我在我的网站上使用它。 它应该有助于:

<?
function absolute_include($file)
         {
         /*
         $file is the file url relative to the root of your site.
         Yourdomain.com/folder/file.inc would be passed as
         "folder/file.inc"
         */

         $folder_depth = substr_count($_SERVER["PHP_SELF"] , "/");

         if($folder_depth == false)
            $folder_depth = 1;

         include(str_repeat("../", $folder_depth - 1) . $file);
         }
?>

这是我几年前写的一个函数,我在我的网站上使用它。 它应该有助于:

<?
function absolute_include($file)
         {
         /*
         $file is the file url relative to the root of your site.
         Yourdomain.com/folder/file.inc would be passed as
         "folder/file.inc"
         */

         $folder_depth = substr_count($_SERVER["PHP_SELF"] , "/");

         if($folder_depth == false)
            $folder_depth = 1;

         include(str_repeat("../", $folder_depth - 1) . $file);
         }
?>


为什么不完全链接到css文件,并为此目的而忘记所有的
$depth
?为什么不完全链接到css文件,并为此目的而忘记所有的
$depth