在我的文本中,用戶可以輸入看起來像這樣的模塊; [[form:contact]]
,代表模塊及其名稱; [[module:name]
這是替換標籤的最佳方式嗎?
我使用下面的代碼從文本中撤消它,並將其拆分,從我想要的數據庫中獲取信息並將其替換。
這是最好的方法嗎?它工作的很好,但我不確定這是否是最有效的方式,並且想知道你們是否會想到它...
我正在使用Zend Framework。
這是代碼:
$start = strpos($this->view->page->text, "[[");
$end = strpos($this->view->page->text, "]]");
$length = $end-$start+2;
$getModuleTag = substr($this->view->page->text, $start, $length);
$length = $end-$start-2;
$removeTags = substr($getModuleTag, 2, $length);
$split = strpos($removeTags, ":");
$GetModuleSort = substr($removeTags, 0, $split);
$GetModuleName = substr($removeTags, $split+1);
// Get the wanted data from the database
switch($GetModuleSort)
{
case 'form':
$this->result = $this->formsService->GetFormByName($GetModuleName);
$replaceTag = $this->result->elements;
break;
}
// TEST OUTPUT
$final = str_replace($getModuleTag, $replaceTag, $this->view->page->text);
$this->view->finalOutput = $final;
但是,它是否適用於多個模塊定義? – AndreKR 2010-11-09 11:19:05
我想不是,我還沒有嘗試過,但我想通過只添加一個模塊來限制用戶,這樣他們就不能創建充滿模塊的不合邏輯的雜亂頁面,而這些頁面之間沒有任何關係 – 2010-11-09 11:20:40
然後它就是在性能方面是一個好方法,但是有更少代碼的方法。 – AndreKR 2010-11-09 11:23:18