今天小编给大家分享的是怎么在html页面中调用外部样式,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。两种调用方法:1、使用link标签调用,语
2021-10-30 12:03:14
107
1、服务器会根据文件的后缀名去进行解析,如果是HTML文件则服务器不会进行语法解析,而是直接输出到浏览器。 2、如果一个页面中全部都是HTML代码而没有需要解析的PHP语法,则没有必要保存为PHP文件,这样反而会降低运行效率。 3、如果是需要PHP控制HTML代码的输出,比如需要PHP判断用户是否登陆,如果登陆则输出A,未登录则输出B。这就需要PHP来进行控制了。HTML不能实现这样的功能
<HTML>
<TITLE>{ title }</TITLE>
<BODY>
this is a { file } file\'s templets
</BODY>
</HTML>
PHP处理:
templetest.php
Code: <?
$title = "拓迈国际测试模板";
$file = "TwoMax Inter test templet,
author:Matrix@Two_Max";
$fp = fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$content .= str_replace ("{ file }",$file,$content);
$content .= str_replace ("{ title }",$title,$content);
echo $content;
?> <?php
$title = "拓迈国际测试模板";
$file = "TwoMax Inter test templet,
author:Matrix@Two_Max";
$fp = fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$content .= str_replace ("{ file }",$file,$content);
$content .= str_replace ("{ title }",$title,$content);
// echo $content;
$filename = "test/test.html";
$handle = fopen ($filename,"w"); //打开文件指针,创建文件
/*
检查文件是否被创建且可写
*/
if (!is_writable ($filename)){
die ("文件:".$filename."不可写,请检查其属性后重试!");
}
if (!fwrite ($handle,$content)){ //将信息写入文件
die ("生成文件".$filename."失败!");
}
fclose ($handle); //关闭指针
die ("创建文件".$filename."成功!");
?>
<?php
$title = "拓迈国际测试模板";
$file = "TwoMax Inter test templet,
author:Matrix@Two_Max";
$fp = fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$content .= str_replace ("{ file }",$file,$content);
$content .= str_replace ("{ title }",$title,$content);
// 生成列表开始
$list = \'\';
$sql = "select id,title,filename from article";
$query = mysql_query ($sql);
while ($result = mysql_fetch_array ($query)){
$list .= \'\'.$result[\'title\'].\'\';
}
$content .= str_replace ("{ articletable }",$list,$content);
//生成列表结束
// echo $content;
$filename = "test/test.html";
$handle = fopen ($filename,"w"); //打开文件指针,创建文件
/*
检查文件是否被创建且可写
*/
if (!is_writable ($filename)){
die ("文件:".$filename."不可写,请检查其属性后重试!");
}
if (!fwrite ($handle,$content)){ //将信息写入文件
die ("生成文件".$filename."失败!");
}
fclose ($handle); //关闭指针
die ("创建文件".$filename."成功!");
?> <? $fp = fopen ("temp.html","r");
$content = fread ($fp,filesize ("temp.html"));
$onepage = \'20\';
$sql = "select id from article where channel=\'$channelid\'";
$query = mysql_query ($sql);
$num = mysql_num_rows ($query);
$allpages = ceil ($num / $onepage);
for ($i = 0;$i<$allpages; $i++){
if ($i == 0){
$indexpath = "index.html";
} else {
$indexpath = "index_".$i."html";
}
$start = $i * $onepage;
$list = \'\';
$sql_for_page = "select name,filename,title from article where channel=\'$channelid\' limit $start,$onepage";
$query_for_page = mysql_query ($sql_for_page);
while ($result = $query_for_page){
$list .= \'\'.$title.\'\';
}
$content = str_replace ("{ articletable }",$list,$content);
if (is_file ($indexpath)){
@unlink ($indexpath); //若文件已存在,则删除
}
$handle = fopen ($indexpath,"w"); //打开文件指针,创建文件
/*
检查文件是否被创建且可写
*/
if (!is_writable ($indexpath)){
echo "文件:".$indexpath."不可写,请检查其属性后重试!"; //修改为echo
}
if (!fwrite ($handle,$content)){ //将信息写入文件
echo "生成文件".$indexpath."失败!"; //修改为echo
}
fclose ($handle); //关闭指针
}
fclose ($fp);
die ("生成分页文件完成,如生成不完全,请检查文件权限系统后重新生成!");
?> 大致思路如此,其中如其它数据生成,数据输入输出检查,分页内容指向等可酌情在页面中加入。 <!-- main.htm -->
<html>
<head><title>模板示例</title></head>
<body>
<table><tr><td>{HEADER}</td></tr>
<tr><td>{LEFTNAV}</td><td>{CONTENT}</td></tr>
</table>
</body></html> <!--
header.htm --> <?php // example.php require(\'class.FastTemplate.php\'); $tpl = new FastTemplate(\'.\'); $tpl->define( array( \'main\' => \'main.htm\', \'header\' => \'header.htm\', \'leftnav\' => \'leftnav.htm\' ) ); // 此处的PHP代码设置$content使其包含合适的页面内容 $tpl->assign(\'CONTENT\', $content); $tpl->parse(\'HEADER\', \'header\'); $tpl->parse(\'LEFTNAV\', \'leftnav\'); $tpl->parse(\'MAIN\', \'main\'); $tpl->FastPrint(\'MAIN\'); ?>
<?php // home.php require(\'class.FastTemplate.php\'); $tpl = new FastTemplate(\'.\'); $tpl->define( array( \'main\' => \'main.htm\', \'header\' => \'header.htm\', \'leftnav\' => \'leftnav.htm\' ) ); $content = "<p>欢迎访问</p> <img src="demo.jpg"> <p>希望你能够喜欢本网站</p>"; $tpl->assign(\'CONTENT\', $content); $tpl->parse(\'HEADER\', \'header\'); $tpl->parse(\'LEFTNAV\', \'leftnav\'); $tpl->parse(\'MAIN\', \'main\'); $tpl->FastPrint(\'MAIN\'); ?>显然,这种方法有三个问题:我们必须为每一个页面复制这些复杂的、牵涉到模板的PHP代码,这与重复公共页面元素一样使得页面难以维护;现在文件又混合了HTML和PHP代码;为内容变量赋值将变得非常困难,因为我们必须处理好大量的特殊字符。
<?php <!-- home.php --> <?php require(\'prepend.php\'); ?> <?php pageStart(\'Home\'); ?> <h1>你好</h1> <p>欢迎访问</p> <img src="demo.jpg"> <p>希望你能够喜欢本网站</p> <?php pageFinish(); ?> ?>
<?php
require(\'class.FastTemplate.php\');
function pageStart($title = \'\') {
GLOBAL $tpl;
$tpl = new FastTemplate(\'.\');
$tpl->define( array( \'main\' => \'main.htm\',
\'header\' => \'header.htm\',
\'leftnav\'=> \'leftnav.htm\' ) );
$tpl->assign(\'TITLE\', $title);
ob_start();
}
function pageFinish() {
GLOBAL $tpl;
$content = ob_get_contents();
ob_end_clean();
$tpl->assign(\'CONTENT\', $content);
$tpl->parse(\'HEADER\', \'header\');
$tpl->parse(\'LEFTNAV\', \'leftnav\');
$tpl->parse(\'MAIN\', \'main\');
$tpl->FastPrint(\'MAIN\');
}
?>
pageStart函数首先创建并设置了一个模板实例,然后启用输出缓存。此后,所有来自页面本身的HTML内容都将进入缓存。pageFinish函数取出缓存中的内容,然后在模板对象中指定这些内容,最后解析模板并输出完成后的页面。 <?php
/*
* 文件名:index.php
*/
require "conn.php";
$query = "select * from news order by datetime desc";
$result = mysql_query($query);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=??????">
<title>NEWS</title>
</head>
<body>
<table width="500" border="1" align="center">
<tr>
<td>标题</td>
<td width="200">发布时间</td>
</tr>
<?
while($re = mysql_fetch_array($result)){
?>
<tr>
<td><a href="<?= $re["newsid"].".html"?>"><?= $re["title"]?></a></td>
<td><?= $re["datetime"]?></td>
</tr>
<?
}
?>
<tr>
<td> </td>
<td><a href="addnews.php">添加新闻</a></td>
</tr>
</table>
</body>
</html> <?php /* 文件名:AddNews.php 简易动态添加生成静态新闻页面 # # 表的结构 `news` # CREATE TABLE `news` ( `newsid` int(11) NOT NULL auto_increment, `title` varchar(100) NOT NULL default \'\', `content` text NOT NULL, `datetime` datetime NOT NULL default \'0000-00-00 00:00:00\', KEY `newsid` (`newsid`) ) TYPE=MyISAM AUTO_INCREMENT=11 ; */ ?>
function gen_static_file($program, $filename)
{
$program 1= "/usr/local/apache/htdocs/php/" . $program;
$filename1 = "/usr/local/apache/htdocs/ static_html/" . $filename;
$cmd_str = "/usr/local/php4/bin/php " . $program1 . " } " . $filename1 . " ";
system($cmd_str);
echo $filename . " generated.〈br〉";
} function gen_college_static ()
{
for ($i = 0; $i 〈= 32; $i++〉
{
putenv("province_id=" . $i); //*.php文件从数据库取数据时要用到。
$filename = " college_static". $i . ".html";
gen_static_file("college_static.php", $filename);
} 从这个函数我们可以看到通过调用函数gen_static_file(),
college_static.php经过静态化,变成了33个静态页面college.static0.html~college.static33.html,其中$filename会随着$I的变化而变化。当然也可以从数据库中直接取值,来控制生成的静态页面的个数和名字,其他程序对生成的静态页面的调用应和静态页面的命名规则一致。19
2022-10
17
2022-10
16
2022-10
02
2022-10
01
2022-10
18
2022-09