2014-05-05 59 views
0

我很多HTML內容存儲在DB
,我在
例如許多動態頁面打印如何在存儲在數據庫中的HTML內容中嵌入圖像的動態URL?

// returned from DB 
$contentHTML = 
' 
    <h1>Photo Number 1</h1> 
    <p>description1</p> 
    <p><img src="../images/1.jpg"/></p> 
    <h1>Photo Number 2</h1> 
    <p>description2</p> 
    <p><img src="../images/2.jpg"/></p> 
'; 
// Print HTML content 
echo $contentHTML; 

我的問題是
我的HTML代碼包含images URLs
而我目前的圖片文件夾(圖片)在應用服務器

但在未來其預計將變E本文件夾

  • 要在另一個文件夾
  • 要在另一臺服務器

因此,這將是一個非常複雜而艱鉅的任務,以取代所有圖像的URL

然後
關於
的任何想法或竅門如何在存儲在DB中的HTML內容中嵌入圖片的動態URL
或如何使其可配置?

+2

你真的需要將它作爲HTML存儲嗎?如果只有照片,說明等,你應該以正常的方式存儲它們。如果你確實必須這樣,那麼你可以用''這樣的方式存儲它們,然後用PHP腳本中的當前路徑替換'{| imgpath |}'。 – Colandus

+0

@Colandus完全正確的答案...您還可以查看Joraid anwser中的詳細步驟 –

回答

1

我通常做的ad-hoc腳本這樣的場景。

步驟1:

替換動態已知的可變所有硬鏈接。

../images/ to [[PUBLIC_PATH]][[IMG_DIR]] 

第2步:

使用前,用您已經添加變量的實際服務器地址和圖片目錄。

E.g.

contentHTML = NDatabase::getAssoc("select myField from myTable");//yada yada  
$contentHTML = 
' 
    <h1>Photo Number 1</h1> 
    <p>description1</p> 
    <p><img src="[[PUBLIC_PATH]][[IMG_DIR]]/1.jpg"/></p> 
    <h1>Photo Number 2</h1> 
    <p>description2</p> 
    <p><img src="[[PUBLIC_PATH]][[IMG_DIR]]/2.jpg"/></p> 
'; 

$myNewServerPath = "http://www.mysite.come/en/"; 
$myPublicFolder = "{myNewServerPath}public/"; 
$myImgDir = "img" 



$newContent = str_replace(array("[[PUBLIC_PATH]]","[[IMG_DIR]]") , array($myPublicFolder,$myImgDir) ,$contentHTML ) 

之後,您可以更新您的數據庫或只是使用它的代碼。

就個人而言,我有一個文件的完整動態生成,以獲得網站名稱常量的列表,網站的網址,網站子文件夾等

define("CURR_PATH","http://$_SERVER[SERVER_NAME]/");// 

猜你上心。

-1

您可以使用mod_rewrite來重寫網址以指向新位置。

如:

RewriteRule ^images/(.*)$ new-images-folder/$1 [NC,L] 
相關問題