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_Uri_Html Head - Fatal编程技术网

在PHP中从文件绝对路径获取绝对URL

在PHP中从文件绝对路径获取绝对URL,php,url,uri,html-head,Php,Url,Uri,Html Head,我有一个功能,检查是否存在CSS/JS。。。文件,然后返回整个或标记等 在返回之前,它会按绝对路径检查该文件是否存在。file\u exists()。 在此之后,我希望获得此文件的绝对URL,即使请求类似于domain.com/abc/def,也要加载。有没有办法让它在任何地方都能工作(请求都发送到index.php) 我受到Wordpress“排队”的启发,但WP在数据库中保存了URL,这是我不想要的 我非常感谢您的帮助在您的帮助下,我找到了解决方案; 我意识到所有请求都被重定向到index.

我有一个功能,检查是否存在CSS/JS。。。文件,然后返回整个
标记等
在返回之前,它会按绝对路径检查该文件是否存在。
file\u exists()

在此之后,我希望获得此文件的绝对URL,即使请求类似于
domain.com/abc/def
,也要加载。有没有办法让它在任何地方都能工作(请求都发送到index.php)

我受到Wordpress“排队”的启发,但WP在数据库中保存了URL,这是我不想要的


我非常感谢您的帮助

在您的帮助下,我找到了解决方案; 我意识到所有请求都被重定向到index.php(如果不是文件),所以我可以使用DOCUMENT_ROOT。我只需要从windows路径中修复,因为使用了WAMP。我已经添加了协议,URL已经完成

/**
         * Returns absolute URL of given path
         * @param type $path
         * @return type
         */
        function absuri($path){
//for Windows servers (at the moment I use WAMP, i have Debian on my computer)
        $path = str_replace( '\\', '/', $path );
        return ( ( isset($_SERVER['HTTPS']) ) ? 'https://' : 'http://'  ) . str_replace( $_SERVER['DOCUMENT_ROOT'] , $_SERVER['SERVER_NAME'] . '/' , $path);
    }

您知道网站的根路径,因此您只需将其从开始处切断,就可以获得URL的绝对路径。如果文件位于同一文件系统中,您是否尝试使用realpath函数将绝对路径转换为相对路径?您可以使用
string\u replase($basePath,$domen,$filePath)
其中$basePath例如/var/www/project/和$domen you bseUrl例如.com等等@SamiKuhmonen:Root path是apache virtualhost的根目录,如果我在一个类似/domains/a.a/domains/b.b/的目录上有更多的域,我该怎么办