如何建立内部HTML自定义变量

可能重复:
以取代PHP字符串的最快方法

我试图来管理,我有我的HTML标签,如中所做的自定义变量:

<title>{myTitle}</title>

现在我怎么能取代那些自定义变量“{...}”使用PHP? 我看到大部分的模板引擎都能够做到这一点。

任何意见可以理解的:)

--------------解决方案-------------

这是一个模板引擎的简化版本。 显然,你需要把在一类具有更多的功能:)

显示页面

<?php

define(TEMPLATES_LOCATION, 'templates/');

function TemplateFunction ($template, $replaces) {
$template = file_get_contents(TEMPLATES_LOCATION . $template);
if (is_array($replaces)) {
foreach($replaces as $replacekey => $replacevalue){
$template = str_replace('{$' . $replacekey . '}', $replacevalue, $template);
}
}
return $template;
}

$keys = array(
'TITLE' => 'This is page title',
'HEADER' => 'This is some header'
);

echo TemplateFunction('body.tpl', $keys);

?>

模板文件(位于模板/ body.tpl)

<html>
<head>
<title>{$TITLE}</title>
</head>
<body>
<h1>{$HEADER}</h1>
</body>
</html>

(编辑)单个文件的版本

<?php

define(TEMPLATES_LOCATION, '');

function TemplateFunction ($template, $replaces) {
// $template = file_get_contents(TEMPLATES_LOCATION . $template);
if (is_array($replaces)) {
foreach($replaces as $replacekey => $replacevalue){
$template = str_replace('{$' . $replacekey . '}', $replacevalue, $template);
}
}
return $template;
}

$keys = array(
'TITLE' => 'This is page title',
'HEADER' => 'This is some header'
);

$template = '<html>
<head>
<title>{$TITLE}</title>
</head>
<body>
<h1>{$HEADER}</h1>
</body>
</html>';

echo TemplateFunction($template, $keys);

?>

PHP已经是一个基本的模板的环境中,也可以使用工具,如Smarty的更多功能。 但随着PHP本身,你可以简单地包括标准变量:

<title><?= $myTitle ?></title>

$arr = new array();
$arr["test"] = "hello";
$arr["foo"] = "world"

foreach ($arr as $key => $value) {
$yourTemplateAsString = str_replace("{".$key."}", $value, $yourTemplateAsString);
}

简单的解决方案......确保你可以做一些花哨的东西正则表达式,并添加的foreach和这样的东西。

如果你想使用一样,你可以用嫩枝语法,它是一个PHP模板引擎。

分类:php 时间:2012-01-14 人气:0
本文关键词: PHP,HTML
分享到:

相关文章

  • 没办法,决定从手机同步哪种方式 2012-01-01

    嗨, 首先感谢这个伟大的应用程序. 我担心的是没有在应用程序没有办法决定我想要什么样的同步的. 这将是更好,如果我们没有从手机应用程序本身选择上述任何一个选项. 手机网站 网络至手机 合并双方的手机和网络 或者是这个功能已经在那里? 那该怎么办呢? 据我所知,现在我们必须去到我的手机网站,一个地选择一切事情之一,让它从网络同步到手机上. 这真是苦满:(. 提前致谢 Naigil --------------解决方案------------- 该团队的MyPhone正在考虑的MyPhone的未来版

  • 1909年警告错误和安装1317微软Office 2003专业版时, 2012-01-01

    在我的东芝笔记本上安装微软Office 2003专业版(合法副本)时,我得到了一个警告1909年和1317错误. 我的操作系统是Vista Home Premium操作系统. 我也试图恢复到出厂设置,但是当我做我的DVD / CD刻录机将无法工作. 我很困惑....请帮助! --------------解决方案------------- 这是Vista的安装,升级和激活论坛. http://www.microsoft.com/office/community/en-us/flyoutovervi

  • 安卓:如何引用一个字符串中使用XML,以及如何一个字符串数组资源以显示该XML我的数据列表 2012-01-01

    我在我的项目中的一个问题:我想检索加入string.xml其中数据项存储multicheckbox列表数据,我的喜好使用multicheckbox列表数据(机器列表). 这是我的首选项. <com.scytec.datamobile.vd.gui.android.ListPreferenceMultiSelect android:defaultValue="#ALL#" android:key="@string/pref_DataEntry_key" andr

  • 我想知道如何从市场上卸载应用程序时,它dosnt让我? 为什么这样做呢? 2012-01-01

    香港专业教育学院得到了6.5的窗户专业的三星Omnia II手机的运营商是verizionwireless. 因为我想以释放内存我的存储驱动器上,它不会让我解决它.

  • VSeWSS的网站模板增加了50多个功能,功能列表 2012-01-01

    我创建并部署使用VSeWSS的1.3 MOSS站点确定指标 我安装网站定义并创建一个新的网站,一切工作正常. 然而,当有人进入上WebApplication的任何网站(任何网站集)和去功能列表,那么所有这些功能都在列表中. 我有一个基于这些内容类型用自己的实例和ItemRecievers约15内容类型,有15名单. 正如你能想象这是一个很大的列表中的功能. 我的SharePoint管理员看到这个,有一个崩溃... 他希望看到一个条目像你看到的MOSS企业功能等,激活所有的功能为我的解决方案. 我

  • WCF服务显示异常时的WSHttpBinding和用户名,身份验证安全服务 2012-01-01

    我在.NET 4.0中创建一个workflowservice 我想,以确保本(WCF)服务,并使用下面的链接查看如何做到这一点. 我跟着指示,然而,当一个定义servicebehavior全部的寄托工作正常. 配置是这样的: <behaviors> <serviceBehaviors> <behavior> <serviceCredentials name="ServiceBehavior"> <userNameAuthentica

  • 无法加载文件或程序集“MySql.Data,版本= 6.2.2.0 2012-01-01

    我工作的桌面应用程序用C#和数据库的MySQL. 当我在我的机器上安装的安装程序,它工作正常,但是当我在其他机器上安装它的给予下列异常时,尝试访问数据库. 我使用MySQL.Data.dll与MySQL进行通信. 无法加载文件或程序集"MySql.Data,版本= 6.2.2.0,文化=中性公钥= c5687fc88969c44d"或它的某一个依赖. 该系统找不到指定的文件. 和MySql.Data.dll在存在于计划 ​​项目的文件夹中的文件文件的文件夹 其实,当我从它在程序文件夹中

  • 错误的:System.Web.UI.Page.InitOutputCache(),或在System.Web.Mvc? 2012-01-01

    我使用asp.net MVC与我的一些控制方法的输出缓存(该的OutputCache属性)和我得到了一些非常奇怪的结果在HTTP标头. 当我的属性添加到处理的主网页视图控制器动作. 下面的头产生: Date Thu, 16 Jul 2009 23:04:58 GMT Server Microsoft-IIS/6.0 X-Powered-By ASP.NET X-AspNet-Version 2.0.50727 X-AspNetMvc-Version 1.0 Content-Encoding gz

  • 我忘了检查我不想MSN或Bing盒子,我怎么能删除,并恢复到我的旧东西。 2012-01-01

    我忘了检查我不想MSN或Bing盒子. 现在我想删除这些,回到我的旧信息. 我不喜欢MSN或Bing. 请帮忙. --------------解决方案------------- 1.卸载IE9和重启两次 . •如何卸载IE9? http://windows.microsoft.com/en-US/windows7/how-do-i-install-or-uninstall-internet-explorer-9 注:卸载IE9将你的Win7电脑上自动还原IE8. 2.运行每http://wind

  • PHP客户端和C#服务器 - 不沟通,由于超时 2012-01-01

    我是相当新的Socket编程,但这里不用什么. 我一直试图做一个C#服务器和PHP客户端之间的一些简单的TCP通信. 不过,我曾在让他们之间的连接没有运气. 我基本上经由PHP socket通信的Web浏览器发送一个桌面应用程序的消息. 不过,我不断收到超时错误. 我的代码如下: 我的C#代码服务器-它只是简单地聆听,并通知我,如果建立连接 static void Main(string[] args) { try { IPAddress localAddress = IPAddress.Par

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 2.279 (s). 10 q(s)