在我的文本中,用户可以输入如下所示的模块;[[form:contact]]
,代表一个模块及其名称;[[module:name]
我使用以下代码从文本中收回它,然后拆分它,从我想要的数据库中获取信息并替换它。
这是最好的方法吗?它工作得很好,但我不确定这是否是最有效的方法,并且想知道你们会怎么想......
我正在使用 Zend 框架。
这是代码:
$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;