2011-11-30 17 views
0

如何在PHP中像joomla一樣解釋我自己的標籤?如何解讀標籤?

這是一個Joomla模板文件的一部分:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>"> 

<head> 
<jdoc:include type="head" /> 
<?php JHTML::_('behavior.mootools'); ?> 
+1

您可以在編輯器中輸入它們。我想你要問的是「我怎樣才能解釋*我自己的標籤在PHP中像joomla一樣?」 - 請問正確的問題。 – DaveRandom

+0

你說得對。我取而代之 – balping

+0

任何人?請幫忙 – balping

回答

0

您應該創建解析器 - 與您的自定義標記,解析模板 - 並把它翻譯成正確的HTML - >類似的PHP模板引擎(Smarty的例如)。

+0

如何做到這一點? – balping

0

,如果im正確認識你,你必須要使用自己的標籤的模板。 你可以用file_get_contents()函數

$content = file_get_contents('path_to_your_template_file'); 

然後你可以使用preg_replace_callback()使用讓您的模板內容一個匹配你的標籤的正則表達式,以及一個回調函數來替換你想要的任何東西。下面鱈發現此自定義標籤:

$content = preg_replace_callback('/<\$mainNav(.*)\/\$>/',array(get_class($this), 'mainNavCallback'),$content); 

函數mainNavCallback()接收定製標記的內容,然後可以處理自定義屬性,等等。

希望有所幫助,您可能需要花費一段時間才能找到適合您的產品。祝你好運!

+0

謝謝!我想要做這樣的事情,但不想在字符串中使用我的標籤。例如:' language;?>」lang =「<?php echo $ this - > language;?>「> <?php // php命令在這裏?>' – balping

+0

您可能需要爲您的文件中的所有php創建自定義標記這樣你可以將文件作爲字符串處理,否則你將如何解釋標籤?然後,該文件可能只是一個PHP文件,它會通過php迭代並匹配自定義標籤,然後是您的php,例如$ this-> language;可以在回調函數中處理。 – Karl

+0

或甚至可能eval()的某些用法可以爲你工作。現在人們會評論eval如何是邪惡的。但這可能是eval標籤的非邪惡應用。但我也只是頭腦風暴。 – Karl