Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.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 在本地主机和服务器上工作的映像的绝对路径_Php_Html - Fatal编程技术网

Php 在本地主机和服务器上工作的映像的绝对路径

Php 在本地主机和服务器上工作的映像的绝对路径,php,html,Php,Html,包括我使用的php文件 if ( !defined('ABSPATH') ) define('ABSPATH', str_replace("core/","",dirname(__FILE__) . '/')); 由于我的配置文件保存在核心中,我必须删除它所在的文件夹 现在,这适用于包含php文件,因为它提供了正确的文件路径,并且也适用于服务器 function getCurrentURL() { $currentURL = (@$_SERVER["HTTPS"] == "on") ?

包括我使用的php文件

if ( !defined('ABSPATH') ) define('ABSPATH', str_replace("core/","",dirname(__FILE__) . '/'));
由于我的配置文件保存在核心中,我必须删除它所在的文件夹

现在,这适用于包含php文件,因为它提供了正确的文件路径,并且也适用于服务器

function getCurrentURL()
{
    $currentURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
    $currentURL .= $_SERVER["SERVER_NAME"];

    if($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443")
    {
        $currentURL .= ":".$_SERVER["SERVER_PORT"];
    } 

        $currentURL .= $_SERVER["REQUEST_URI"];
    return $currentURL;
}
但它在下面这一行行不通

<link rel="stylesheet" href="css/raw/style/site.css" media="screen"/>

因为这需要url而不是文件路径。 同样,对于图像,您也需要这些图像的url

在搜索堆栈溢出后,人们说要使用文档根和所有这些,但文档根只能在服务器上使用

function getCurrentURL()
{
    $currentURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
    $currentURL .= $_SERVER["SERVER_NAME"];

    if($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443")
    {
        $currentURL .= ":".$_SERVER["SERVER_PORT"];
    } 

        $currentURL .= $_SERVER["REQUEST_URI"];
    return $currentURL;
}
在本地,我使用wampserver,在不同的文件夹中有许多不同的网页,所以文档根不好。此外,在上传之前,我会在本地编写我的所有网页。绝对路径必须在本地和服务器上工作。 我也不能使用固定路径。因为我有很多版本的网站。每当我更新网站时,我都会创建一个新文件夹并给它编号。因此,不断改变一条固定的路径是行不通的

我的大多数网页都使用相对路径,因为我还没有找到一个很好的绝对路径解决方案

那么,在本地主机和服务器上工作的绝对路径URL的最佳解决方案是什么


另外,我知道有一些关于堆栈溢出的帖子可以回答这个问题,但是没有人给出我想要的答案。大多数人说要定义本地和服务器地址,但我使用多个文件夹,所以这对我来说不起作用。

我终于找到了在本地主机和服务器上都有效的答案

function getCurrentURL()
{
    $currentURL = (@$_SERVER["HTTPS"] == "on") ? "https://" : "http://";
    $currentURL .= $_SERVER["SERVER_NAME"];

    if($_SERVER["SERVER_PORT"] != "80" && $_SERVER["SERVER_PORT"] != "443")
    {
        $currentURL .= ":".$_SERVER["SERVER_PORT"];
    } 

        $currentURL .= $_SERVER["REQUEST_URI"];
    return $currentURL;
}
我用这个在我的配置中运行它

if(!isset($_SESSION['ABSURL'])) $_SESSION['ABSURL']=getCurrentURL();
我在这个网站上找到了答案

为每个项目使用虚拟主机可以解决此问题。这就是为什么建议使用虚拟主机,这样在迁移到LIVE server时就不会出现这种情况。我以前从未听说过wampserver上有虚拟主机。我知道您在microsoft IIS中有它们。我将阅读你的链接,看看它是否有帮助。实际上,虚拟主机并不能解决我的问题。我有一个文件夹,里面有50个相同网站的不同版本。当我添加可能破坏我网站的新内容时,我创建了一个新版本。如果我必须为每个文件夹创建一个虚拟主机,这将花费我很长时间。但是我可以玩这个。所以,谢谢你的建议。像GIT woudl这样合适的源代码管理工具似乎正是你真正需要的。我已经看过GIT,并认为设置所有这些命令行内容以及推拉操作太麻烦了。似乎我会花更长的时间来处理它,而不是完成任何编码。