PHP中的自定义HTML标记
当我和Joomla玩的时候!源代码,我看到的代码(或类似的代码,我不太确定,因为那是很久以前的事了):PHP中的自定义HTML标记,php,asp.net,custom-tags,Php,Asp.net,Custom Tags,当我和Joomla玩的时候!源代码,我看到的代码(或类似的代码,我不太确定,因为那是很久以前的事了): 我并没有说它与上面的完全一样,但当我看到类似Asp.NET的自定义标记时,我感到惊讶: <asp:Label ID="lblLabel" runat="server"/> 我现在想知道如何像在Asp.NET中一样在PHP中完成相同或类似的事情。是否有任何用于此等的框架库 我是否需要编写一个解析器来解析我的php代码并搜索这些标记,并用相应的标记替换它们,比如Asp.NET
我并没有说它与上面的完全一样,但当我看到类似Asp.NET的自定义标记时,我感到惊讶:
<asp:Label ID="lblLabel" runat="server"/>
我现在想知道如何像在Asp.NET中一样在PHP中完成相同或类似的事情。是否有任何用于此等的框架库
我是否需要编写一个解析器来解析我的php代码并搜索这些标记,并用相应的标记替换它们,比如Asp.NET将
替换为
我的个人偏好:
我喜欢Asp.NET所做的,它将代码从设计视图中分离出来,或将html从c#代码中分离出来。使用asp.net的服务器端控件,开发人员可以轻松地从代码隐藏中访问html控件。这听起来像是分离关注点,我想知道是否有任何项目或方法已经完成了相同的事情?如果您使用一种方法,其中表示层与执行逻辑(例如,模板引擎)分开存储,然后很容易创建一个解析器,在HTML中查找特定代码,并用其他方法替换它。你可以创造自己的“聪明”语言 然而,如果您的代码只是“可执行的PHP”,没有层分离,您就不能进行这样的替换(因为它是由PHP脚本引擎直接执行的)。“可执行php”的意思是:
<html>
<head>
...
</head>
<body>
<?php echo "Hello world"?>
</body>
</html>
...
或者,您可以使用一个MVC框架(Zend framework、Codeigniter或类似的框架),它可以为您分离很多关注点
正如所建议的,SMARTY是一个模板引擎,它可以完成您所追求的大部分功能,但这实际上只是难题的一部分。抽象数据访问层也是一个好主意
您还可以在服务器配置上启用短标记,然后您甚至可以使用类似于
<html>
<head>
...
</head>
<body>
<?= "Hello, world!" ?>
</body>
</html>
$html = new simple_html_dom();
$html->load_file(fileToParse.html');
foreach($html->find('tagToFind') as $element){
$element->tag='span';
}
...
您可以试试。然后你可以运行类似于
<html>
<head>
...
</head>
<body>
<?= "Hello, world!" ?>
</body>
</html>
$html = new simple_html_dom();
$html->load_file(fileToParse.html');
foreach($html->find('tagToFind') as $element){
$element->tag='span';
}
这应该行得通
你可能想看看老实说,我不喜欢Asp.NET,因为我和其他人谈过,但你不能用模板引擎实现类似的功能吗?首先想到的是Smarty,我已经用了很长一段时间了,非常可靠而且易于破解。PHP是一种解释语言,意味着它在配置到apache或IIS环境时执行逐行代码,然后执行以PHP结尾的任何文件。这意味着一切都在服务器端执行,而.net使用即时编译器,它保存语法并在稍后阶段执行。这是可能的,但基本上您需要更改PHP。i、 让它像JIT编译器一样。。。!可能重复感谢关于模板引擎的热播不要混淆
Gee,真的吗?我理解你的担心。然而,如果他们想使用更多的“模板样式”标记,比如