Php 查找HTML中出现的自定义标记,执行函数并用函数输出替换标记
这可能是一个非常简单的问题,因此为没有更具挑战性而道歉 我正在开发一个使用模板系统的内部CMS 为了使CMS尽可能可扩展,我想使用“模块”。因此,在模板文件中,我想放置表示模块的自定义HTML标记 这将看起来像:Php 查找HTML中出现的自定义标记,执行函数并用函数输出替换标记,php,regex,templates,content-management-system,Php,Regex,Templates,Content Management System,这可能是一个非常简单的问题,因此为没有更具挑战性而道歉 我正在开发一个使用模板系统的内部CMS 为了使CMS尽可能可扩展,我想使用“模块”。因此,在模板文件中,我想放置表示模块的自定义HTML标记 这将看起来像: 我通过以下方式获取模板文件: ob_start(); include "templatefile.tpl"; $buffer= ob_get_contents(); ob_end_clean(); 现在我想浏览一下$buffer的内容,对于的每一次出现,我想包括“moduleNam
我通过以下方式获取模板文件:
ob_start();
include "templatefile.tpl";
$buffer= ob_get_contents();
ob_end_clean();
现在我想浏览一下$buffer
的内容,对于
的每一次出现,我想包括“moduleName.class.php”
,创建该类的一个新实例,运行该模块的getOutput()
函数,并将返回值放在该
标记以前所在的位置
我不知道该怎么办…:/有什么想法吗
如果你不懂,想想看新闻报。我可能会编写一些代码,查看数据库中的新闻表,列出10条最新新闻,然后将其输出到html
。我想把它抽象出来,这样就可以在很多页面上使用。因此,在我的主页模板中,我可能有标签
。现在,当我访问主页时,我需要查看主页tpl文件,我会发现它在哪里显示
,我将提取name
属性,并基于该名称包含一个类(在本例中,它将是newsTicker.class.php
)。这将有一个名为getOutput()
的函数,因此我将能够实现类似的功能:$output=$current\u module->getOutput()
然后我需要返回到我的tpl文件并更改原始的
中$output
的内容
谢谢你的帮助。:)
汤姆- 使用DOMDocument查找
元素(我个人只会使用小写)模块
- 存储
属性name
基于包含一次
属性的类(如果使用自动加载,则跳过)名称
- 使用
$class=new$name
- 删除
的原始$class->getOutput()
DOM元素和模块
appendChild
$dom->saveHTML()
时,您可能需要仅从正文
元素中提取。