Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中创建自定义模板系统_Php_Templates_Template Engine - Fatal编程技术网

如何在PHP中创建自定义模板系统

如何在PHP中创建自定义模板系统,php,templates,template-engine,Php,Templates,Template Engine,我想在php应用程序中使用自定义模板系统 我想要的是我想远离我的php代码的设计,我想使用一个tpl文件的设计和php代码的php文件 我不想使用任何现成的脚本。有人能指出一些链接或有用的信息如何构建一个php模板系统来实现这一点吗 谢谢我这样做的方法是创建一个模板文件(.tpl,如果您愿意),并插入将在PHP中用str_replace替换的标记。代码将如下所示: 对于template.tpl文件 <body> <b>Something: </b> <

我想在php应用程序中使用自定义模板系统

我想要的是我想远离我的php代码的设计,我想使用一个tpl文件的设计和php代码的php文件

我不想使用任何现成的脚本。有人能指出一些链接或有用的信息如何构建一个php模板系统来实现这一点吗


谢谢

我这样做的方法是创建一个模板文件(.tpl,如果您愿意),并插入将在PHP中用str_replace替换的标记。代码将如下所示:

对于template.tpl文件

<body>
  <b>Something: </b> <!-- marker -->
</body>

一些东西:
对于PHP

$template = file_get_contents('template.tpl');
$some_data = 'Some Text'; //could be anything as long as the data is in a variable
$template = str_replace('<!-- marker -->', $some_data, $template);
echo $template;
$template=file\u get\u contents('template.tpl');
$some_data='some Text'//只要数据在变量中,就可以是任何内容
$template=str_replace(“”,$some_data,$template);
echo$模板;
简而言之就是这样,但它可能会变得复杂得多。标记可以是任何东西,只要它是唯一的

我想让我的php代码远离设计,我想使用tpl文件进行设计

…并将您的第三方物流代码与“设计”相结合
那有什么区别呢?:)

PHP本身就是一个高效的模板系统。
如今,大多数开发人员都同意将PHP代码划分为业务逻辑部分和显示逻辑部分是最可取的方法。
当然,它可以是非常有限的PHP子集。您将需要一个输出操作符(
)一个,一个条件
..
,一个循环
..
和include

此类模板的一个示例:

<table>
<? foreach ($data as $row): ?> 
  <tr>
    <td><b><?=$row['name'] ?></td>
    <td><?=$row['date'] ?></td>
  </tr>
  <tr>
    <td colspan=2><?=$row['body'] ?></td>
  </tr>
  <? if ($row['answer']): ?>
  <tr>
    <td colspan=2 valign="top">
      <table>
        <tr>
          <td valign="top"><b>Answer: </b></td>
          <td><?=$row['answer'] ?></td>
        </tr>
      </table>
    </td>
  </tr>
  <? endif ?>
  <? if($admin): ?>
  <tr>
    <td colspan=2>
  <? if($row['del']): ?>
      <a href="/gb/?action=undelete&id=<?=$row['id']?>">show</a>
  <? else: ?>
      <a href="/gb/?action=delete&id=<?=$row['id']?>">hide</a>
  <? endif ?>
      <a href="/gb/?action=edit&id=<?=$row['id']?>">edit</a>
    </td>
  </tr>
  <? endif ?>
<? endforeach ?>
</table>

答复:

如果你不知道如何编写它们——看看其中一些成熟的(
smarty
)是如何编写的,或者不要那么乐观,只拿一个在现实世界中绝对不可用的(我建议你看看
mustache
)就行了。至少你需要块才能使它可用请解释。我每天都用这个方法,效果非常好。我要补充的唯一一件事是提到
short_tags
,它在关闭的情况下不起作用。@alex如果关闭,有很多事情是不起作用的。显示错误、PDO支持、修改重写-任何内容。这不是提及它的理由。这就是这种配置选项的目的——打开和关闭。我想说,没有什么不好的甚至值得一提的。