2016-01-23 183 views
-3

在MySQL表中我有一行叫做path。此表包含类似这样的路径:img src“../”和“./”路径url链接

./gallery/1/sweater.jpg

我使用显示的index.php图像:

<img src="" /> 

它的工作原理很好。但是,当客户选择一个类别,一个例子:衣服,然后我的程序重定向他的路径:

./categories/clothes.php

里面的文件clothes.php我想显示从数据库,它是图像:

./gallery/1/sweater.jpg

但我不能这样做,因为文件血块hes.php是在文件夹名为类别,从而使得它的工作路径应与双点:

../gallery/1/sweater.jpg

但问题是,在我的数据库只有一个点,如:

./gallery/1/sweater.jpg

什么是使它工作的最佳方式?

  1. 我可以写一个脚本iside the clothes.php,它向单点路径添加一个点。这不丑吗?
  2. 你知道更多的例子吗?我在php中制作了一个非常大的程序,它包含了现在的数千行代码,但是我坚持使用这个简单的东西,哈哈。谢谢你的每一个答案。我接受,当然。
+2

使路径相对于某处,然后在通过某些中央功能进行打印时将其展开。 (顺便说一下,'img'标签是自闭的。) –

回答

1

只要使用域相关路径,即那些以斜杠开始的路径。

<img src="/gallery/1/sweater.jpg"> 
+1

这不是一个“绝对路径”,它是一个相对于域的路径或“绝对路径引用”。一条真正的绝对路径将具有完整的域和协议。 –

+0

@Praveen库马尔我知道,我没有足够的声望发表评论,如果任何国防部看到这一点,请将我的答案移到评论。 – eaxix

+0

@Alexander O'Mara固定。 – eaxix

1

你不想用相对路径引用静态查找的库目录。由于您使用的是PHP,因此您可以创建一个实用程序函数来获取站点根目录,然后在数据库中追加存储的路径的其余部分。这在大多数情况下工作:

$root = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . '/'; 

注:这并不在URL处理端口号或用户名,但你可能并不需要这一点。