对于包含php文件我使用
if ( !defined('ABSPATH') ) define('ABSPATH', str_replace("core/","",dirname(__FILE__) . '/'));
由于我的配置文件保存在核心,我必须删除它所在的文件夹。
现在它可以用于包含php文件,因为它给出了正确的文件路径,并且它也可以在服务器上工作。
但是下面的
行不起作用<link rel="stylesheet" href="css/raw/style/site.css" media="screen"/>
因为这需要url而不是文件路径。图片也是一样,你也需要一个url。
在搜索堆栈溢出之后,人们说要使用文档根和所有这些,但是文档根只在服务器上有用。
我在本地使用wampserver,我在不同的文件夹中有许多不同的网页,所以文档根不太好。我也写我所有的网页本地上传之前。绝对路径必须在本地和服务器上工作。我也不能使用固定路径。因为我有很多版本的网站。每当我更新一个网站时,我都会创建一个新文件夹并给它编号。所以不断改变固定的路径是行不通的。
我的大多数网页都使用相对路径,因为我还没有想出一个好的绝对路径解决方案。
那么对于在本地主机和服务器上工作的绝对路径url的最佳解决方案是什么?p。我知道有关于堆栈溢出回答这个问题的帖子,但没有人给我想要的答案。大多数人说定义一个本地和服务器地址,但我使用多个文件夹,所以这对我来说不起作用。
我终于找到了在本地主机和服务器上工作的答案。
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();
我在这个网站上找到了答案http://hayageek.com/php-get-current-url/