定义变量而不是php echo来实现模板标签功能

时间:2015-05-08 08:26:30

标签: php string variables echo

我正在编写一个带有模板添加功能的项目。 并希望在模板中有简单的变量,这就是原因 我想定义一些变量或类似的东西,而不是使用:

<?php echo $variable; ?>

我想要一些像:

{$varaible}

我该怎么做? 实际上我如何创建我的简单模板引擎? 感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用任何现有模板引擎或以下代码集来执行此操作。

创建模板文件,如下所示(调整HTML,添加更多模板变量或任何内容)。将其保存到文件中并将其命名为mytemplate.txt

<html>
<head>
<title>{title}</title>
</head>
<body>
<h1>{header}</h1>
{text}
</body>
</html>

创建一个PHP文件,并将其命名为home.php(或任何名称,具体取决于您的用例)。添加以下代码。

<?php 
$tags['title']="Replaces title tag";
$tags['header']="Replaces header tag";
$tags['text']="Replaces text tag"; 

//lets us open your template file and replace the tags
print preg_replace("/\{([^\{]{1,100}?)\}/e","$tags[$1]",file_get_contents("mytemplate.txt"));
?>

确保mytemplate.txt和home.php位于服务器上的同一目录中。

注意: - 这为您提供了一个基本的模板引擎,使用PHP的preg_replace函数。

以下是参考资料

  1. https://www.webmasterworld.com/php/3444822.htm
  2. http://php.net/manual/en/function.preg-replace.php

答案 1 :(得分:-1)

首先,您必须定义变量

接下来,您必须使用此PHP函数来替换str_replace http://php.net/str_replace

// Provides: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

将相同的内容应用到模板中,效果很好。