HTML代码和PHP分离

PHP从 HTML 中分离 阅读详情
导读:
   <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
使用PHP4中的 IntegratedTemplate类实现HTML和PHP代码分离
  使用PHP编程的人都会碰到这样一个问题:当PHP代码和HTML代码在一起的时候,看PHP代码很费劲,整个文件也无法用Dreamweaver来编辑,这对于PHP程序员和美工来讲,修改这样的文件就象一个噩梦。
  PHP中的模板(Template)技术就是为了解决这个问题而出现的。PHP模板类有很多,比较常见的是 FastTemplate 和 PHPLib, 因为出现得早,在PHP编程界名声很大。PHP程序员不知道这两个类,就象VB程序员不知道MsgBox函数一样,是一件不可思议的事情。
  以前我们需要去下载PHP模板类,现在PHP4有了自己的模板类 IntegratedTemplate 和 IntegratedTemplateExtension,功能和PHPLib 差不多。这两个类是子类和父类的关系。一般我们用 IntegratedTemplateExtension 就可以了。让人感到不可思议的是 IntegratedTemplate 不是从 PEAR 类继承过来,无法用到 PEAR 类的 debug 功能。
  以下举例子说明它们的用法,假设 IntegratedTemplate 类和 IntegratedTemplateExtension 类分别在 C:/php4/pear/HTML/ITX.php 和 C:/php4/pear/HTML/ITX.php 中。我们写的代码放在C:/TestPHP/PHP4/Welcome.htm 和 C:/TestPHP/HTML/Welcome.php 中。将C:/TestPHP/PHP4 在Web Server 上设成虚拟目录 /testphp 并且给与脚本执行权限,确认C:/TestPHP/HTML/Welcome.htm 无法通过远端浏览器访问。在 php.ini 里面设置 include_path = ".;C:/php4/pear"
  例1:
  我们在HTML文件中放置变量的标记,用PHP代码设置变量的值,然后将HTML中的标记替换掉,最后输出到客户浏览器。
  以下是 Welcome.htm 代码,我们放了三个PHP tag(变量标记)为: {WelcomeTitle}、{UserName}、{WelcomeMessage}
  
  
  

  
  
  

您好,{UserName}


{WelcomeMessage}


  
  
  
  以下是Welcome.php代码
  
require_once "HTML/ITX.php";
//以下是给变量赋值,在实际代码中可能从Database中取得数据然后赋值
$WelcomeTitle = "欢迎来到网页天堂";
$UserName = "皮皮鲁";
$WelcomeMessage = "您的到来让我们深感荣幸!";
//一般来说这种全局变量放在单独的一个文件中,便于维护
$HTML_CODE_FILE_ROOT = "../HTML/";
$tpl = new IntegratedTemplateExtension($HTML_CODE_FILE_ROOT);
//指定要替换 tag 的 HTML 文件
$tpl->  require_once "HTML/ITX.php";
  //以下是给变量赋值,在实际代码中可能从Database中取得数据然后赋值
  $WelcomeTitle = "欢迎来到网页天堂";
  $UserName = "皮皮鲁";
  $WelcomeMessage = "您的到来让我们深感荣幸!";
  //一般来说这种全局变量放在单独的一个文件中,便于维护
  $HTML_CODE_FILE_ROOT = "../HTML/";
  $tpl = new IntegratedTemplateExtension($HTML_CODE_FILE_ROOT);
  //指定要替换 tag 的 HTML 文件
  $tpl->loadTemplatefile("Welcome.htm");
  //替换HTML 文件中的 tag
  $tpl->setVariable( array (
  "WelcomeTitle" => $WelcomeTitle,
  "UserName" =>$UserName,
  "WelcomeMessage" =>$WelcomeMessage
  ) );
  //输出替换后的 HTML
  $tpl->show();
  >
  
  这样写好后,Welcome.htm 仍然可以使用网页编辑器如Dreamweaver、FrontPage 进行编辑,Welcome.php中是纯粹的PHP代码,不含HTML,方便以后的代码修改和维护。
  如果将 IntegratedTemplateExtension 类和 PHP4中的 Cache 类 联合使用,在速度上可以得到很好的效果。
  PHP4 模板类还可以使用 Block,配合其他 PHP4 中的类 可以很轻松地实现数据库数据检索的翻页,可以很轻松写出论坛之类的软件。
  补充说明:为了防止用户直接用 Welcome.htm 看网页,将 Welcome.htm 放在客户访问不到的目录(只要不在Web Server 的虚拟目录下即可)。对于大型的PHP项目,图片、PHP代码、HTML文件、多语言字符串文件都应该放在不同的目录,这样在多人共同做一个项目时不至于混乱。
  
  =======================================================================
  使用PHP4中的 IntegratedTemplate类实现BLOCK功能
  关键字:PHP4,template,模板,IntegratedTemplateExtension,block
  读者要求:了解PHP4 的模板概念
  使用PHP 模板类进行编程很有好处,但是有时也会碰到一个问题,比如说输出一个表格,但是表格行数要到运行的时候才知道,如留言板、BBS、购物网站之类,经常会碰到这个问题。这时做美工的人无法决定在HTML文件中用几行表格,如果在PHP代码文件中写循环输出,又会让美工、PHP程序员看代码都不方便,美工的人会说,这里的表格哪里去了?我要修改表格的颜色背景之类怎么办?PHP程序员也会说,怎么这里突然有一个 、   ,做什么用?会嵌在HTML文件哪里?。
  使用PHP模板类编程一般把这种不确定个数的HTML 元素当成一个“ block ”,对 bolck 的编程类似于在代码中写一个循环。在比较常用的PHP模板类(如 FastTemplate 和 PHPLib )都有这种功能。写嵌套的block 类似于写多重循环。现在举例说明在 PHP4 里面的 IntegratedTemplateExtension 类中block 的编程方法,例子中用的是两重循环,外层block 是GoodsList,里层block 是GoodsListOfSomeType 。
  基本设置:假设我们写的代码放在C:/TestPHP/PHP4/GoodsList.htm 和 C:/TestPHP/HTML/GoodsList.php 中。将C:/TestPHP/PHP4 在Web Server 上设成虚拟目录 /testphp 并且给与脚本执行权限,确认C:/TestPHP/HTML/GoodsList.htm 无法通过远端浏览器访问。假定PHP4安装在C:/php4,在 php.ini 里面设置 include_path = ".;C:/php4/pear"
  以下是GoodsList.htm的内容:
  
  
  

  
  
  
 

{UserName},您的购物袋里有以下商品:

  

  

  
 商品种类商品名称商品价格 
 {Type}   
  {GoodsName}{Price} 
 

 


  
  
  
  
  以下是PHP4代码文件 GoodsList.php
  
require_once "HTML/ITX.php";
//以下是给变量赋值,在实际代码中可能从Database中取得数据然后赋值
$UserName = "皮皮鲁";
$GoodsTypeArray = array("家电", "书籍");
$GoodsNameArray = array(array("三星显示器", "Sony单放机","长虹彩电"),
array("C++ 编程思想", "Java 2 高级开发指南", "Visual Basic 5 高级开发指南",
"Flash 4 快闪劲爆网页", "设计模式可复用面向对象软件的基础" ));
$GoodsPriceArray = array(array(1024, 302, 1024),
array(35, 62, 76, 66.5, 55 ));
//一般来说这种全局变量放在单独的一个文件中,便于维护
$HTML_CODE_FILE_ROOT = "../HTML/";
$tpl = new IntegratedTemplateExtension($HTML_CODE_FILE_ROOT);
//指定要替换 tag 的 HTML 文件
$tpl->  require_once "HTML/ITX.php";
  //以下是给变量赋值,在实际代码中可能从Database中取得数据然后赋值
  $UserName = "皮皮鲁";
  $GoodsTypeArray = array("家电", "书籍");
  $GoodsNameArray = array(array("三星显示器", "Sony单放机","长虹彩电"),
  array("C++ 编程思想", "Java 2 高级开发指南", "Visual Basic 5 高级开发指南",
  "Flash 4 快闪劲爆网页", "设计模式可复用面向对象软件的基础" ));
  $GoodsPriceArray = array(array(1024, 302, 1024),
  array(35, 62, 76, 66.5, 55 ));
  //一般来说这种全局变量放在单独的一个文件中,便于维护
  $HTML_CODE_FILE_ROOT = "../HTML/";
  $tpl = new IntegratedTemplateExtension($HTML_CODE_FILE_ROOT);
  //指定要替换 tag 的 HTML 文件
  $tpl->loadTemplatefile("GoodsList.htm");
  $tpl->setVariable("UserName",$UserName); //用户名称
  //指定外层 block 名称
  $tpl->setCurrentBlock("GoodsList");
  //我喜欢在循环前将循环次数单独赋值
  $GoodsTypeCount = count($GoodsTypeArray);
  //对外层block 进行循环
  for ($i = 0 ;$i <$GoodsTypeCount ;$i++)
  {
  $tpl->setVariable("Type",$GoodsTypeArray[$i]); //货物种类
  //指定里层block 名称
  $tpl->setCurrentBlock("GoodsListOfSomeType");
  $GoodsNameArrayCount = count( $GoodsNameArray[$i] );
  //对里层block 进行循环
  for($j = 0; $j <$GoodsNameArrayCount; $j++ )
  {
  //替换HTML 文件中的 tag
  $tpl->setVariable(array ("GoodsName" =>$GoodsNameArray[$i][$j],
  "Price" => $GoodsPriceArray[$i][$j]));
  $tpl->parseCurrentBlock(); //这里也可以写 $tpl->parse("GoodsListOfSomeType");
  }
  $tpl->parse("GoodsList"); //结束外层 block
  }
  //输出替换后的 HTML
  $tpl->show();
  >
  运行以后可以看到多重循环替换的效果。这样写好后, GoodsList.htm 仍然可以使用网页编辑器如 Dreamweaver、FrontPage 进行编辑, GoodsList.php中是纯粹的PHP代码,不含HTML,方便以后的代码修改和维护。
  Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=135832

本文转自
http://blog.youkuaiyun.com/NetSniffer/archive/2004/10/14/135832.aspx
PHP编程:分离HTML与PHP代码 本章节介绍了如何在PHP中实现HTML模板的分离,以提高代码的可维护性和可读性。通过使用输出缓冲技术,我们能够将页面特定的HTML代码捕获到一个变量中,然后在主布局模板中使用。此外,还讨论了在需要时才连接数据库的重要性,并通过实际示例展示了如何让网站访客通过表单向数据库添加数据。 阅读详情

相关推荐

Mamba-YOLO训练前必看:从环境配置到数据集调整的完整流程

本文详细介绍了Mamba-YOLO目标检测框架的完整训练流程,包括环境配置、数据集优化和模型调参。从硬件准备到依赖安装,再到数据增强和超参数调整,提供了一系列实用技巧和常见问题解决方案,帮助开发者高效训练Mamba-YOLO模型,避免常见踩坑记录。

tech5的博客 827

一文吃透PHP和HTML的嵌套写法

1.1全部php生成结构 1.2html中嵌套php 总结如下: html和php混写规则: php代码必须包在<?php ?> html中写php也是同理,但是有值输出必须加上echo 1.3博客项目 1.3.1前后台 前台主要是做数据展示的,所有的用户通过访问域名(网站的网址)来看到的所有的数据信息,如果其中的数据过时了需要删除或者更新,需要后台管理员登录后台管理界面,进行增删改,前台的数据也会跟着发生变化。后台登录一般是需要账号和密码的。 1.3.2项目开发流程 产品经理和用

商务合作欢迎私信我 1万+

别再手动切换了!用SP3485+三极管搞定RS485自动收发电路(附完整原理图)

本文详细介绍了如何利用SP3485芯片和三极管设计RS485自动收发电路,解决传统手动切换带来的IO资源占用和软件复杂度问题。通过原理分析、电路设计拆解和实战注意事项,帮助工程师打造稳定可靠的自动收发通信模块,显著提升系统性能和可靠性。

weixin_26833939的博客 512

什么是php与html,php和html的关系和区别是什么

关系:PHP是HTML语言的升级形式,语言结构仍然以HTML为核心;这么说吧,HTML是一张白纸,那么PHP就是一张白纸折起来的飞机。区别:HTML主要用于客户端显示,PHP主要用于处理客户端通过网页提交的信息,运行在服务器端。本教程的操作环境:windows7系统,PHP 7.1 &:& amp;Html5第5版,DELL G3电脑php和html的关系PHP是HTML语言的升级...

weixin_33060757的博客 8208

别再手动调参了!用MATLAB+改进PSO算法,5步搞定机械臂轨迹优化(附完整代码)

本文介绍如何利用MATLAB和改进PSO算法快速优化机械臂轨迹规划,仅需5步即可完成传统耗时的手动调参过程。通过混沌初始化、自适应权重等创新方法,改进PSO算法显著提升优化效率,实现全局最优解搜索,适用于工业自动化中的机械臂控制。文章包含完整MATLAB代码实现,帮助工程师轻松应用于实际生产场景。

weixin_29232121的博客 354

QT 面试题汇总

一、讲述Qt信号槽机制与优势与不足 优点:①类型安全。需要关联的信号槽的签名必须是等同的。即信号的参数类型和参数个数同接受该信号的槽的参数类型和参数个数相同。若信号和槽签名不一致,编译器会报错。 ②松散耦合。信号和槽机制减弱了Qt对象的耦合度。激发信号的Qt对象无需知道是那个对象的那个信号槽接收它发出的信号,它只需在适当的时间发送适当的信号即可,而不需要关心是否被接受和那个对象接受了。Qt就保证了适当的槽得到了调用,即使关联的对象在运行时被删除。程序也不会奔溃。 ...

编程菜鸟 4万+

php和html的区别

这就导致了一个问题,尽管HTML和PHP都是构建现代网站不可或缺的技术,但它们解决的问题类型截然不同。前者专注于内容的表现形式,后者则致力于增强网站的功能性和灵活性。通过合理搭配使用二者,你可以创建出既富有视觉吸引力又能提供丰富功能的强大网站。希望这篇文章能够为你开启探索之路,并激发你对Web开发的兴趣!

chatgpt001的博客 2102

用 YOLOv11‑Seg 做工地实例分割:从 0 起步到效果调优,真香!

这不是一篇“官方文档翻译”,而是一篇。

weixin_43199439的博客 776

PHP如何与HTML结合使用?

PHP与HTML结合使用的主要方式是通过在HTML文件中嵌入PHP代码,从而实现动态内容的生成和网页的交互性。

m0_74824845的博客 1742

基于SAGE算法的宽带信道参数估计算法的MATLAB仿真

本文将介绍如何使用MATLAB进行SAGE算法的仿真,以便更好地理解和应用该算法。SAGE算法是一种基于最大期望(Expectation-Maximization)方法的迭代估计算法,用于估计未知的参数。在宽带信道参数估计中,SAGE算法通过迭代优化来估计信道的传输函数。总结起来,本文介绍了如何使用MATLAB进行基于SAGE算法的宽带信道参数提取算法的仿真。通过以上步骤,我们可以得到估计的信道响应,并与真实信道响应进行比较。此外,SAGE算法还可以与其他信道估计算法相结合,以提高估计的准确性和性能。

CodeRoarX的博客 1075

Linux内核进程管理子系统有什么第五十一回 —— 进程主结构详解(47)

Linux内核进程管理子系统有什么第五十一回 —— 进程主结构详解(47)

phmatthaus的专栏 1385

php和html代码分离,javascript - PHP如何和HTML代码分离?

javascript - PHP如何和HTML代码分离?原创2016-09-06 08:57:110490";}}?>//JS$(document).ready(function() {cat();function cat() {$.ajax({url: 'action.php',type: 'POST',data: {category: 1}}).done(function(dat...

weixin_30639241的博客 166

FAST-LIVO2 源码精读(十八):实时性优化、漂移排查与工程落地

FAST-LIVO2 的工程价值,不在于某一个孤立的技巧,而在于它把"激光的几何精度、惯性的高频预测、视觉的纹理与色彩"用一套简洁的滤波框架紧紧拧在一起,又在实时性、鲁棒性、可扩展性之间取得了难得的平衡。先用内建计时表定位瓶颈,再按降采样、并行、滑窗、编译优化、双频输出逐项加速;遇到漂移先看现象、循诊断树定位根因、回到对应章节取解法。十八篇至此收束。

PX4-SLAM-PNC 217

html嵌入php分离,HTML和PHP代码分离

使用PHP编程的人都会碰到这样一个问题:当PHP代码和HTML代码在一起的时候,看PHP代码很费劲,整个文件也无法用Dreamweaver来编辑,这对于PHP程序员和美工来讲,修改这样的文件就象一个噩梦。PHP中的模板(Template)技术就是为了解决这个问题而出现的。PHP模板类有很多,比较常见的是 FastTemplate 和 PHPLib, 因为出现得早,在PHP编程界名声很大。PHP程序...

weixin_29474217的博客 439

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

php与html分离,PHP如何和HTML代码分离?

include "db.php";if(isset($_POST["category"])){$category_query = "SELECT * FROM categories";$run_query = mysqli_query($con,$category_query);echo "Categories";if(mysqli_num_rows($run_query)>0){while...

weixin_42366200的博客 593

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

php 页面和代码分离,javascript-PHP如何和HTML代码分离?

Categories";if(mysqli_num_rows($run_query)>0){while($row = mysqli_fetch_array($run_query)){$cid = $row["cat_id"];$cat_name = $row["cat_title"];echo "$cat_name";}echo "";}}?>//JS$(document).ready...

weixin_39792803的博客 248

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

html template php 代码,template类实现html和php代码分离 阳飞.doc

template类实现html和php代码分离 阳飞.doc还剩30页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,很抱歉,此页已超出免费预览范围啦!如果喜欢就下载吧,价低环保!内容要点:function PrintPage($title) { global $tpl; $tpl->assign(PAGE_TITLE, $title); $tpl->parse(FINAL, "p...

weixin_39559523的博客 157

php文件好html,如何使PHP文件与HTML代码更好的分离

大家都知道,php是一种服务器端的内嵌html式的脚本编程语言。可是按照内嵌html方式来作一网站的话,代码很快就变得庞大而且不可控制。如何才能使php代码与html分离,做出类似dw的lib(模板)而使得页面更加容易修改并且代码容易维护呢?后来,看了很多文章,说phplib可以实现,随手看了几页,觉得头晕脑涨,顿时没有了看下去的欲望。可是问题还得解决,在一次偶然机会,得以下载vbb论坛的源码,粗...

weixin_36274181的博客 284

html如何与php,PHP如何和HTML代码分离?

include "db.php";if(isset($_POST["category"])){$category_query = "SELECT * FROM categories";$run_query = mysqli_query($con,$category_query);echo "Categories";if(mysqli_num_rows($run_query)>0){while...

weixin_35159405的博客 302

使用PHP4中的 IntegratedTemplate类实现HTML和PHP代码分离

使用PHP4中的 IntegratedTemplate类实现HTML和PHP代码分离    使用PHP编程的人都会碰到这样一个问题:当PHP代码和HTML代码在一起的时候,看PHP代码很费劲,整个文件也无法用Dreamweaver来编辑,这对于PHP程序员和美工来讲,修改这样的文件就象一个噩梦。    PHP中的模板(Template)技术就是为了解决这个问题而出现的。PHP模板类有很多,比较

jacklondon的专栏 1409

PHP中如何配置smarty框架实现PHP代码和HTML代码分离

//测试smarty是否配置成功 //$tpl->assign('cms','这是我的第一个cms'); //$tpl->display(TPL.'/test.html');测试的时候,只需要在html代码中写入,然后运行程序,看是否能够输出“这是我的第一个cms”,如果可以输出,就说明smarty配置成功了,接下来就可以利用smarty把php代码与html代码实现完美分离了。 header(

小花同学的成长之路 1412

php文件好html,如何使PHP文件与HTML代码更好的分离?

大家都知道,php是一种服务器端的内嵌html式的脚本编程语言.可是按照内嵌html方式来作一网站的话,代码很快就变得庞大而且不可控制.如何才能使php代码与html分离,做出类似dw的lib(模板)而使得页面更加容易修改并且代码容易维护呢?后来,看了很多文章,说phplib可以实现,随手看了几页,觉得头晕脑涨,顿时没有了看下去的欲望(那位大虾如果有此心得,敬请不吝赐教,先行谢过!).可是问题还得...

weixin_31920157的博客 197

如何使PHP文件与HTML代码更好的分离

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 832

PHP代码和HTML分离

PHP代码和HTML分离 表单编辑一些数据时,读取后台数据并填充到表单是一件繁琐的事情,尤其是表单域很多而且包含radio,checkbox,select等的时候。你一定见过下面的代码: &lt;select name="area"&gt; &lt;option value="nankai" &lt;?php if($area=='nankai') echo 'selected="select...

flying1188的博客 3285

从HTML中分离PHP, 在HTML种写PHP代码

既有PHP代码又有HTML代码的文件最好以" .php "结尾, 如果有php解释器的话, 命名为.html也没有问题 为了使php解释器忽略HTML代码, php只处理一对PHP开始和结束标记之间的内容. 如: <p>This is going to be ignored by PHP and displayed by the browser.</p> &lt...

weixin_30242907的博客 159
上一篇: MATLAB对高等数学学习的有益帮助
下一篇: 换一种思路:解决Ajax程序与IE7不兼容的问题
Xviewee
博客等级 码龄20年 78粉丝 236原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值