2016-01-23 167 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處理端口號或用戶名,但你可能並不需要這一點。