page.html
<body>
<h1>{{HEADING1}}</h1> {{CONTENT1}}
<h2>{{NEWSLETTER}}</h2>
<h1>{{VAR1}}</h1> {{VAR2}}
</body>
page.php
$HEADING = 'Heading';
$CONTENT = '
<div align="center">
-- Content goes here --
</div>
';
$NEWSLETTER = 'newsletter content';
$VAR1 = 'Another Sub Heading';
$VAR2 = 'content';
$File = file('page.html');
print $File;
1>当urlhttp://example.com/page.php执行,所有的{{VARIABLE}}都应替换为$VARIABLE中的值
2>我还想调用HTML中的PHP循环
类似的东西
BEGIN WHILE LOOP
CONTENTS
END
实现这些的最佳方法(或正则表达式)是什么?
以下可用于将变量$HEADING更改为{{HEADING}}
$File = file('file.html');
$FContent = join("", $File);
$FileContent = preg_replace("/{{(.*?)}}/e","@$$1", $FContent);
print $FileContent;
使用模板引擎怎么样?参见Twig
你必须在你的PHP文件中设置变量,比如这个
return array("variable" => "variable_content");
然后以这种方式在HTML文件中使用它:
Content: {{variable}}
在HTML中,您还可以使用Twig语法进行循环
{% for var in variables %}
Content: {{var}}
{% endfor %}
您可以在此处使用str_replace:
$File = str_replace("{{HEADING}}",$HEADING,$File);
$File = str_replace("{{CONTENT}}",$CONTENT,$File);
print $File;