在php中修复前面的正斜杠

时间:2013-07-15 12:11:40

标签: php

我正在尝试通过安装相同的XAMPP版本并下载文件和mysql来创建网站的本地副本。

在网络服务器上,文件保存在http://www.website.com/html,但可以通过website.com

访问

我在这个目录http://localhost/website.com/html

中创建了自己的

我遇到了脚本问题,因为所有的css和javascript都有前面的“/”

src="/js/prototype.js"

我无法解释它非常好,但这是一个示例问题

该脚本最初具有此

<link href="/_design/_master.css" rel="stylesheet" type="text/css"> 

这在我的本地安装上不起作用,但适用于在线版本。但是如果我删除了本地安装的第一个/它就可以了。

<link href="_design/_master.css" rel="stylesheet" type="text/css">

此链接也适用于在线版

<a id="logout" href="/logout.php">logout</a>

但在我的本地版本上,它仅链接到http://localhost/logout.php,但它应该链接到http://localhost/website.com/html/logout.php

当我删除第一个/它的工作时,它们有这么多,我可能会错过一些。

是否有用于修复此问题的php设置?或者我把它放在错误的目录上?请帮忙。谢谢!

2 个答案:

答案 0 :(得分:1)

啊那就是问题所在。当您拥有/作为第一个字符时,它假定您从根目录开始,但在本地计算机上,您不能将其保留在根目录中。但是如果你删除斜杠/它应该可以在您的计算机和真实网站上使用。

首先写道:(

substr($string, 1)

该函数将返回不带第一个字符的字符串,在您的情况下为斜杠

编辑:应该是$string,我忘了php中的变量有$

答案 1 :(得分:0)

是的。使用绝对路径。定义一个保存基本URL的常量。

define('BASE_URL', 'http://mysite.com/');

并包括使用

$src = BASE_URL.'/js/prototype.js'

你也可以检查preg_match是否有/在开头,并使用substr()来减去它或使用preg_replace()

$src = preg_replace('#^\/$#m', '', $src);