首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中的自定义HTML标记

PHP中的自定义HTML标记
EN

Stack Overflow用户
提问于 2011-11-24 05:27:23
回答 3查看 1.3K关注 0票数 0

当我和Joomla一起玩的时候!源代码,我看到了这样的代码(或者类似于这个代码,我不太确定,因为那是很久以前的事):

代码语言:javascript
复制
<juc:place name="module" some-other-attributes/>

我并不是说它与上面的完全相同,但当我看到类似ASP.NET的自定义标记时,我实际上感到惊讶:

代码语言:javascript
复制
<asp:Label ID="lblLabel" runat="server"/>

我现在想知道如何像他们在Asp.NET中一样,在PHP中完成同样的事情或类似的事情。是否有这样或那样的框架库?

我是否需要编写一个解析器,解析我的php代码,搜索这样的标记,然后用相应的方法替换它们,比如Asp.NET,用<span/>替换<asp:Label/>

我的个人喜好:

我喜欢Asp.NET通过将代码隐藏与设计视图或html与c#代码分开所做的事情。通过使用ASP.NET的服务器端控件,开发人员可以轻松地从代码背后访问html控件。这听起来像是分离的关注点,我想知道是否有任何项目或方式已经做了同样的事情?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-24 05:32:33

如果使用一种方法,表示层与执行逻辑(例如模板引擎)分开存储,那么很容易创建一个解析器,它在HTML中查找特定的代码,然后用shomething替换它。你可以用自己的“聪明”语言。

但是,如果您的代码只是“可执行的PHP”,没有层分离,那么您就不能进行这样的替换(因为它是由PHP脚本引擎直接执行的)。我所说的“可执行的php”指的是这样的东西:

代码语言:javascript
复制
<html>
  <head>
  ...
  </head>
  <body>
  <?php echo "Hello world"?>
  </body>
 </html>
票数 1
EN

Stack Overflow用户

发布于 2011-11-24 05:39:41

或者,您可以使用MVC框架(Zend、Codeigniter或类似的),它为您实现了很多关注点的分离。

正如所建议的那样,SMARTY是一个模板引擎,它可以完成您所追求的任务,但这实际上只是谜题的一部分。抽象您的数据访问层也是一个好主意。

您还可以在服务器配置上启用短标记,然后您甚至可以使用以下内容来整理演示代码.

代码语言:javascript
复制
<html>
    <head>
    ...
    </head>
    <body>
        <?= "Hello, world!" ?>
    </body>
</html>
票数 1
EN

Stack Overflow用户

发布于 2012-06-10 18:27:47

你可以试试SimpleHTMLDOM。然后你就可以运行类似..。

代码语言:javascript
复制
$html = new simple_html_dom();
$html->load_file(fileToParse.html');
foreach($html->find('tagToFind') as $element){
    $element->tag='span';
}

那应该管用。

你可能想看看为cms创建自定义html标记

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8252588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档