php调用模板
1. php框架Thinkphp中怎么使用我自己的HTMl模板
thinkPHP 基础的你应该会吧,
模板文件放在哪里你应该知道吧。
默认的是在 view 里面。
假如你创建了 一个 控制器 比较较index,里面有一个reg的方法。那么模板就这样
/view/reg.html 只要把自己的reg.html 模板文件写好 然后 thinkPHP就会调用了。
2. PHP模板怎么用
php网站模板使用方法如下:
逻辑和现实分离,显示全部用静态页面的html代码。
把要显示的变量用一个特定的字符串放进去(一般都是<!--{$str}-->这种形式)。当然,模板文件不一定非要是html后缀,你可以用任何后缀。
逻辑层处理完业务逻辑就要包含模板文件显示了。
包含的思想就是用fopen打开文件,把文件内容读到一个字符串变量里。
然后用正则表达式把<!--{$str}-->替换成$str,最后用echo输出就行了。
3. php smarty是否可以调用上级或同级目录的模板
这个上级目录指的应该是你的
php文件的上级目录
调用的时候直接
$smarty->display('xxx.tpl');
今天才开始看smarty,呵呵
这个问题我也试过很多次了。
我的结论是设置$smarty->templates_dir
=
"../templates";时是相对于你的php文件来说的
实现$smarty->display('xxx.tpl');里的模板路径是相对于你的模板目录说的
————————————————
建议你自己写个子类继承Smarty类,里面写绝对路径。
4. php调用模板问题
你用的什么模板啊,不同的模板系统写法有点不一样,
这里面,给你介绍一个,当前比较通用的Smarty的方法
{include file="header.html"}
<!--这里就是你的中间的内容了-->
{include file="footer.html"}
注意把分隔符“}”换成你对应的分隔符,如果你的是默认的,就可能不管这个了。
希望能够帮到你。
5. THINKPHP 调用模板 以及调试模式
你问的有点乱,不知道你问模板为什么不输出啊,还是问DEBUG调试为什么没开启!
把开启debug调试放到最上边就好了!即:
---------------------------------------------------------------------
// 开启DEBUG调试
define(‘APP_DEBUG’,true);
// 定义项目路径
define('APP_PATH','./Admin/');
define('APP_NAME','Admin');
require './ThinkPHP/ThinkPHP.php';
---------------------------------------------------------------------
这时如果有错误出现,thinkphp才会报错!
不懂的接着问我!
6. php 的框架与模板
楼主的认知不对哦,以下为楼主解惑:
框架:在php源码的基础上,开发者将常用的功能进行二次封装形成的代码集合,其本身往往不具备任何可用的功能,其目的仅仅是使开发人员可以基于框架更快的开发出符合要求的应用。例如,不使用框架开发一个用户管理功能可能需要5天,使用框架可以将这个时间缩短到2天。实际上,对于任何一个项目,访问控制、数据库访问、文件处理等功能都是必备的,框架就是将这些常用功能进行了更易用的封装,避免开发人员在通用组件上重复开发,浪费时间。
模板:为了将PHP内容和html内容更好的分离为目的产生的一种应用,其主要目的是为了网页制作人员可以不去学习PHP就能修改页面的内容(可惜不学PHP还要学smarty,因此我个人并不觉得模板真的能带来什么实际的好处)
另外,如dede,DZ,PHPCMS等是基于PHP的产品,本身已经具备了大量的功能,安装之后就能使用,当然,因为需求的不同可能需要在该产品的基础上进行二次开发。
综述,模板没有太大的价值,完全可以在非用不可的时候再去学习,对于PHP开发人员来说,smarty可以立刻上手。它可以(也只能)被框架或PHP产品使用。框架是必须掌握的,定制性很强的项目必然都是基于框架开发的。PHP产品,如果你要开发的项目和某个PHP产品的功能达到80%以上的契合,那么应该考虑基于该产品进行开发。
一些网站提供简单的博客,留言板等的源码,不基于框架的小项目实际上只能称为练习,只有参考价值。
注:不是说不使用框架的项目就不算项目,事实上如果一个项目如果没有使用某某框架,其项目的一部分代码也必然的会具有框架的特征,即自定义框架也是框架。
7. 在php中如调用一个或几个php模板文件
如何应用FastTemplate呢?首先你需要先进行一个简单地调用:
<?php $tpl=new FastTemplate ("path"); ?>
传递给它一个路径,是所有你的模板文件存放的目录。它返回一个对象,你可以用它进行参
数赋值,生成页面等等。
FastTemplate是基于这样一种假设:一个很大的页面是由很多小的部分组成的。每一个部分有一个唯一
的名字。最小的部分是赋值给这样有着唯一名字的一段正常的文本字符串。这个可以通过
<?php
$tpl->assign(NAME, "text");
?>
来完成。现在,如果你的一个模板包含{NAME},FastTemplate 就知道你
的意图了。
另外,FastTemplate需要知道你想如何调用你的模板。你需要通过传递一个相关数组(associative
array)给 <?php $tpl->define(); ?>
来给它一个提示。
以下为引用的内容:
<?php
$tpl->define(array(foo => "foo.tpl",
bar => "bar.tpl"));
?>
这些赋值将分别给foo和bar以不同的文件(名为foo.tpl和bar.tpl)。
现在你想让FastTemplate替换在模板foo中的所有{MACROS}为相应的值。通过发出命令
以下为引用的内容:
<?php
$tpl->parse(PAGECONTENT, "foo");
?>
来实现。 这个命令将把模板"foo"的内容赋给PAGECONTENT。 当然,我们还没有做完,因为模板bar中为主要的页面定义,FastTemplate需要替换其中的
{PAGECONTENT}宏。我们也需要给PAGETITLE赋值,如下所做:
以下为引用的内容:
<?php
$tpl->assign(PAGETITLE, "FooBar test");
$tpl->parse(MAIN, "bar");
?>
容易吧,不是吗?我们现在只需要把它输出: <?php
$tpl->FastPrint(MAIN);
?>
下面三个文件显示了实际练习中的更多的细节描述。我不知道在现实生活了离了这个技术应如何生活 --
你的设计者会高兴,你的老板会微笑,因为你可以在更短的时间内做更多的事情。
以下为引用的内容:
bar.tpl
<!-- bar.tpl -->
<HTML>
<HEAD><TITLE>Feature world - {PAGETITLE}</TITLE></HEAD>
<BODY BGCOLOR=BLACK TEXT=WHITE>
<H1>{PAGETITLE}</H1>
{PAGECONTENT}
</BODY>
</HTML>
foo.tpl <!-- foo.tpl -->
很明显示什么都没做。请看{NAME}.
以下为引用的内容:
demo.php3
<?php
include "class.FastTemplate.php3";
$tpl = new FastTemplate( ".");
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"));
$tpl->assign(NAME, "me");
$tpl->assign(PAGETITLE, "Welcome!");
$tpl->parse(PAGECONTENT, "foo");
$tpl->parse(MAIN, "bar");
$tpl->FastPrint(MAIN);
?>
创建整个表格
我也写了一个短的例子,用来演示如何通过单行模板来生成整个表格。它很有效,因为你仍然不需要直
接修改HTML文档。
我们增加一个模板的内容到一个已经定义过的唯一命名的后面来创建HTML表格。这个可以通过在调用
$tpl->parse()时,在模板名前加上一个"."来实现。 <?php
// 将模板foo的内容赋给TPL1
$tpl->parse(TPL1, "foo");
// 在TPL1后附上模板bar的内容
$tpl->parse(TPL1, ".bar");
?>
page.tpl
以下为引用的内容:
<HTML>
<HEAD><TITLE>Feature world - {PAGE_TITLE}</TITLE></HEAD>
<BODY BGCOLOR=BLACK TEXT=WHITE>
<H1>{PAGE_TITLE}</H1>
{PAGE_CONTENT}
</BODY>
</HTML>
table.tpl
以下为引用的内容:
<TABLE>
<TR> <TH>name</TH> <TH>size</TH> </TR>
{TABLE_ROWS}
</TABLE>
table_row.tpl
以下为引用的内容:
<TR>
<TD>{FILENAME}</TD>
<TD>{FILESIZE}</TD>
</TR>
yad.php3
以下为引用的内容:
<?php
include "class.FastTemplate.php3";
function InitializeTemplates() {
global $tpl;
$tpl = new FastTemplate( ".");
$tpl->define( array( page => "page.tpl",
table => "table.tpl",
table_row => "table_row.tpl" ) );
}
function ReadCurrentDirectory() {
global $tpl;
$handle = opendir( ".");
while($filename = readdir($handle)) {
$tpl->assign(FILENAME, $filename);
$tpl->assign(FILESIZE, filesize($filename));
$tpl->parse(TABLE_ROWS, ".table_row");
}
closedir($handle);
$tpl->parse(PAGE_CONTENT, "table");
}
function PrintPage($title) {
global $tpl;
$tpl->assign(PAGE_TITLE, $title);
$tpl->parse(FINAL, "page");
$tpl->FastPrint(FINAL);
}
InitializeTemplates();
ReadCurrentDirectory();
Printpage( "Yet Another Demo");
?>
8. dede list.php调用的模板是哪个
list.php中调用的模板是根据当前模板 调用对应的列表页模板。
比如说:普通文章 调用的是list_article.htm
产品模型 调用的就是list_shop.htm
9. php是如何调用模板文件的
你好,在代码的最后一行,这句代码include template('index');就调用了模板,里面的模板名称是index.
10. PHP判断ua调用对应模板的问题
通过$_SERVER['HTTP_USER_AGENT'] 判断浏览器类型,然后include不同的模版代码。