Php 如何解释标签?

Php 如何解释标签?,php,joomla,tags,Php,Joomla,Tags,我如何像joomla那样用PHP解释自己的标记 这是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->

我如何像joomla那样用PHP解释自己的标记

这是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'); ?>


你应该创建一个解析器——用你的自定义标记解析模板——并将其翻译成适当的html->类似于php的模板引擎(例如Smarty)。

如果我理解正确,你就有一个模板,你想在其中使用你自己的标记。 您可以使用file_get_contents()获取模板内容

然后,您可以使用preg_replace_callback()来使用正则表达式来匹配标记,并使用回调函数来替换标记。以下代码找到此自定义标记:

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

$content=preg\u replace\u回调('/',数组(get\u class($this),'mainNavCallback'),$content);
函数mainNavCallback()接收自定义标记的内容,然后可以处理自定义属性等


希望这对你有所帮助,你可能需要花一段时间来研究它,以找到适合你的方法。祝你好运

您可以在编辑器中键入它们。我想你想问的是“我怎样才能像joomla那样用PHP解释我自己的标记?”-请问正确的问题。谢谢!我想这样做,但不想在字符串中使用我的标记。例如:
您可能需要为文件中的所有php创建自定义标记,以便可以将文件作为字符串使用,否则您将如何解释标记?然后,该文件可能只是一个html文件,php迭代并匹配定制标记,然后是您的php,例如,$this->language;可以在回调函数中处理。或者甚至可以使用eval()的某些用法。现在人们将评论eval是多么邪恶。但这可能是eval标签的非邪恶应用。不过我还是在头脑风暴。谢谢!我尝试了eval(),但它不支持标记
$content = preg_replace_callback('/<\$mainNav(.*)\/\$>/',array(get_class($this), 'mainNavCallback'),$content);