首页 > 后端开发 > 正文

php制作静态网站框架 用PHP制作静态网站模板,什么是PHP呀,请指教!

2023-09-17 15:08:35 | 我爱编程网

今天我爱编程网小编整理了php制作静态网站框架 用PHP制作静态网站模板,什么是PHP呀,请指教!相关信息,希望在这方面能够更好的大家。

php制作静态网站框架 用PHP制作静态网站模板,什么是PHP呀,请指教!

php技术生成静态页面的实现


我们先回顾一些基本的概念。
一、PHP脚本与动态页面。
PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合,也可以类,函数封装等形式,以模板的方式对用户请求进行处理。无论以何种方式,它的基本原理是这样的。由客户端提出请求,请求某一页面 ----- Web服务器引入指定相应脚本进行处理 ----- 脚本被载入服务器 ----- 由服务器指定的PHP解析器对脚本进行解析形成HTML语言形式 ---- 将解析后的HTML语句以包的方式传回给浏览器。由此不难看出,在页面发送到浏览器后, PHP就不存在了,已被转化解析为HTML语句。客户请求为一动态文件,事实上并没有真正的文件存在在那里,是PHP解析而成相对应的页面,然后发送回浏览器。这种页面处理方式被称为“动态页面”。
二、静态页面。
静态页面是指在服务器端确实存在的仅含HTML以及JS,CSS等客户端运行脚本的页面。它的处理方式是。由客户端提出请求,请求某一页面 - ---
WEB服务器确认并载入某一页面 ---- WEB服务器将该页面以包的形式传递回浏览器。由这一过程,我们对比一下动态页面,即可方现。动态页面需由Web服务器的PHP解析器进行解析,而且通常还需连接数据库,进行数据库存取操作,然后才能形成HTML语言信息包;而静态页面,无须解析,无须连接数据库,直接发送,可大大减轻服务器压力,提高服务器负载能力,大幅提供页面打开速度和网站整体打开速度。但其缺点是,不能动态地对请求进行处理,服务器上必须确实存在该文件。
三、模板及模板解析。
模板即尚未填充内容html文件。例如:
temp.html
Code:
以下是引用片段:
HTML
TITLE{ title }/TITLE
BODY
this is a { file } file''''s templets
/BODY
/HTML
PHP处理:
以下是引用片段:
templetest.php
Code:
$title = "HP爱好者测试模板";
$file = "TwoMax Inter test templet,
author:Sheyi";
$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脚本解析处理后得出的结果填充(content)进模板的处理过程。通常借助于模板类。目前较流行的模板解析类有 phplib,smarty,fastsmarty等等。模板解析处理的原理通常为替换。也有些程序员习惯将判断,循环等处理放进模板文件中,用解析类处理,典型应用为block概念,简单来说即为一个循环处理。由PHP脚本指定循环次数,如何循环代入等,再由模板解析类具体实施这些操作。
好了,对比过静态页面与动态页面各自的优劣,现在我们就来说说,如何用PHP生成静态文件。
PHP生成静态页面并不是指PHP的动态解析,输出HTML页面,而是指用PHP创建HTML页面。同时因为HTML的不可写性,我们创建的 HTML 若有修改,则需删掉重新生成即可。(当然你也可以选择用正则进行修改,但个人认为那样做倒不如删掉重新生成来得快捷,有些得不偿失。)
言归正传。用过PHP文件操作函数的PHP FANS知道,PHP中有一个文件操作函数fopen,即打开文件。若文件不存在,则尝试创建。这即是PHP可以用来创建HTML文件的理论基础。只要用来存放HTML文件的文件夹有写权限(即权限定义0777),即可创建文件。(针对UNIX系统而言,Win系统无须考虑。)仍以上例为例,若我们修改最后一句,并指定在test目录下生成一个名为test.html的静态文件:
Code:
以下是引用片段:
$title = "拓迈国际测试模板";
$file = "TwoMax Inter test templet,
author:_Max"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操作处理文章列表,存为字符串,生成页面时替换此字符串即可。如,在页面中放置文章列表的表格加入标记{ articletable },而在PHP处理文件中:
Code:
以下是引用片段:
$title = "拓迈国际测试模板";
$file = "TwoMax Inter test templet,
author:_Max"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."成功!");
?
二、分页问题。
如我们指定分页时,每页20篇。某子频道列表内文章经数据库查询为45条,则,首先我们通过查询得到如下参数:1,总页数;2,每页篇数。第二步, for ($i = 0; $i
allpages; $i++),页面元素获取,分析,文章生成,都在此循环中执行。不同的是,die ("创建文件".$filename."成功!";这句去掉,放到循环后的显示,因为该语句将中止程序执行。例:
Code:
以下是引用片段:
$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 ("生成分页文件完成,如生成不完全,请检查文件权限系统后重新生成!");
?
大致思路如此,其中如其它数据生成,数据输入输出检查,分页内容指向等可酌情在页面中加入。
在实际文章系统处理过程当中,还有许多问题有待考虑,与动态页面不同之处,需注意的地方还有很多。但大致思路即是如此,其它方面可举一反三而得。

php制作静态网站框架 用PHP制作静态网站模板,什么是PHP呀,请指教!

用PHP制作静态网站模板,什么是PHP呀,请指教!

这是一个用模板生成HTML的实例,自己摸索一下.
<?php
require('smarty/Smarty.class.php');
$t = new Smarty;
$t->assign("title","Hello World!");
$content = $t->fetch("templates/index.htm");
//这里的 fetch() 就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了
$fp = fopen("archives/2005/05/19/0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>

什么是PHP...

PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页。当一个访问者打开主页时,服务端便执行PHP的命令并将执行结果发送至访问者的浏览器中,这类似于ASP和CoildFusion,然而PHP和他们不同之处在于PHP开放源码和跨越平台,PHP可以运行在WINDOWS NT和多种版本的UNIX上。它不需要任何预先处理而快速反馈结果,它也不需要mod_perl的调整来使您的服务器的内存映象减小。PHP消耗的资源较少,当PHP作为Apache Web服务器一部分时,运行代码不需要调用外部二进制程序,服务器不需要承担任何额外的负担。

php制作静态网站框架 用PHP制作静态网站模板,什么是PHP呀,请指教!

PHP怎样实现网址伪静态


PHP实现网址伪静态的方法:1、使用函数【$_SERVER['PATH_INFO']】操作实现;2、配置【.htaccess】来,网站建设时使用【mod_rewrite】模块来实现伪静态。
PHP实现网址伪静态的方法:
1.根据$_SERVER['PATH_INFO']来操作实现。
举个列子比如你的网站的地址是 _new.php/look-id-1.shtml
echo $_SERVER['PATH_INFO']出来的结果就会是
/look-id-1.shtml看到这个我想大家可能已经明白了。完整的demo
相关学习推荐:php编程(视频)

index.php
代码如下:

index.php

$conn=mysql_connect("localhost","root","root")or dir("连接失败");
mysql_select_db("tb_demo",$conn);
$sql="select * from news";
$res=mysql_query($sql);
header("content-type:text/html;charset=utf-8");
echo "<h1>新闻列表</h1>";
echo "<a href='add_news.html'>添加新闻</a><hr/>";
echo "<table>";
echo "<tr><td>id</td><td>标题</td><td>查看详情</td><td>修改新闻</td></tr>";
while($row=mysql_fetch_assoc($res)){
echo "<tr><td>{$row['id']}</td><td>{$row['title']}</td><td><a href='show_new.php/look-id-{$row['id']}.shtml'>查看详情</a></td><td><a href='#'>修改页面</a></td></tr>";
}
//上面的红色的地址本来该是show_news.php?act=look&id={$row['id']}
echo "</table>";
//关闭资源
mysql_free_result($res);
mysql_close($conn);show_new.php页面
代码如下:
show_new.php

header("Content-type:text/html;charset=utf-8");
$conn=mysql_connect("localhost","root","root");
mysql_select_db("tb_demo",$conn);
mysql_query("set names utf8");
$pa = $_SERVER['PATH_INFO'];
//$pa 打印出来的值是 /look-id-1.html
//通过正则表达式匹配获取的url地址
if(preg_match('/^/(look)-(id)-([d]).shtml$/',$pa,$arr)){
$act = $arr[1]; //这个是请求的look方法
$id = $arr[3]; //这个是获取的id 值
$sql="select * from news where id= $id";
$res=mysql_query($sql);
$res = mysql_fetch_assoc($res);
echo $res['title']."<hr>".$res['content'];
}else{
echo "url地址不合法";
}
mysql_close($conn);看到上面的这个我想大家肯定懂了吧 其实这种方式用的不多的下面的给大家说第二种方法了啊
2.根据配置.htaccess来实现。
Apache的mod_rewrite是比较强大的,在进行网站建设时,可以通过这个模块来实现伪静态。
主要步骤如下:
1.检测Apache是否开启mod_rewrite功能
可以通过php提供的phpinfo()函数查看环境配置,找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。如果没有开启“mod_rewrite”,则打开目录 apache目录下的“/apache/conf/” ,找到 httpd.conf 文件,再找到“LoadModule rewrite_module”,将前面的”#”号删除即表示取用该功能。 如果没有查找到“LoadModule” 区域,可以在最后一行加入
“LoadModule rewrite_module ,modules/mod_rewrite.so”(独占一行),之后重启apache服务器。再通过phpinfo()函数查看环境配置就有“mod_rewrite”为项了.。
2.让apache服务器支持.htaccess
如何让自己的本地APACHE服务器支持:“htaccess”呢? 只需修改apache的httpd.conf设置就可以让 APACHE支持“.htaccess”了。打开 APACHE目录的CONF目录下的httpd.conf文件,找到: Options FollowSymLinks AllowOverride None 改为 Options FollowSymLinks AllowOverride All 就行了。
3.建立.htaccess文件
建立.htaccess文件时要注意,不能直接建,方法是通过记事本中的另存为菜单,在文件名窗口输入:“.htaccess”,然后点击保存。
4.rewrite规则学习
在新建.htaccess文件之后,就在里面写入以下内容: RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭 RewriteRule ([0-9]{1,})$index.php?id=$1 在这里,RewriteRule是重写规则,是用正则表达式的句子,([0-9]{1,})表示由数字组成的,$表示结束标志,表示以数字结束!如果要实现伪静态页面,
规则如下:
RewriteEngine on RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2在为个正则表达式中,([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第1括号匹配的值,$2代表第二个括号的值,如此类推! 测试PHP脚本如下: index.php文件中的代码如下:
echo ‘你的Action值为:’ . $_GET['action']; echo ‘ ’;
echo ‘ID值为:’ . $_GET['id']; ?>在浏览器地址栏输入:
localhost/page-18.html输出的是:
你的Action值为:page ID值为:18相关学习推荐:编程视频 我爱编程网

以上就是我爱编程网小编给大家带来的php制作静态网站框架 用PHP制作静态网站模板,什么是PHP呀,请指教!全部内容,希望对大家有所帮助!
与“php制作静态网站框架 用PHP制作静态网站模板,什么是PHP呀,请指教!”相关推荐
php静态网站框架制作 PHP怎样实现网址伪静态
php静态网站框架制作 PHP怎样实现网址伪静态

php技术生成静态页面的实现我们先回顾一些基本的概念。一、PHP脚本与动态页面。PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合,也可以类,函数封装等形式,以模板的方式对用户请求进行处理。无论以何种方式,它的基本原理是这样的。由客户端提出请求,请求某一页面-----Web服务器引入指定相应脚本进行处理-----脚本被载入服务器-----由服务器指定的PHP解析器

2023-09-15 18:21:23
Web前端开发静态网站 静态网页设计制作中的布局模式
Web前端开发静态网站 静态网页设计制作中的布局模式

静态网页设计制作中的布局模式一、静态布局(StaticLayout)即传统Web设计,网页上的所有元素的尺寸一律使用px作为单位。1、布局特点:不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示。常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样的话,如果小于这个宽度就会出现滚动条,如果大于这个宽度则内容居中外加背景,这种设计常见与p

2023-09-17 12:57:42
web前端开发静态网页制作 静态网页设计制作中的布局模式
web前端开发静态网页制作 静态网页设计制作中的布局模式

Web前端是干嘛的前端是在浏览浏览器的时候,它是网络前台的部分,运行在pc端。移动端等浏览器上展示给用户浏览的页面,利用完美的动态设计,能够给用户带来极高的用户体验。前端前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站上面的视觉设计,前端开发则是网站的前台代码实现。前端开发又最基本的三个核心,这也是必须掌握的三个重要的核心,分别是HTML、CSS、JavaScr

2023-10-07 12:22:55
php静态框架制作 php技术生成静态页面的实现
php静态框架制作 php技术生成静态页面的实现

php如何生成静态网页?静态页面加载速度快(什么是静态页面),利于搜索引擎蜘蛛抓取,所以很多朋友都想把动态页面生成静态页面,那么今天就来介绍下如何用php生成静态网页。思路大致是这样的:1.设计一个静态页面的模板,需要填充内容的地方用一些符合或者参数代替(不能与其他代码重复),如下图(简图):2.用php读取数据库里的内容,将需要填充内容的符号用读取到的内容替换掉。比如模板是上图

2023-09-12 15:32:44
php框架静态还是动态类 PHP大型门户站是用静态好,还是伪静态好
php框架静态还是动态类 PHP大型门户站是用静态好,还是伪静态好

PHP开发用哪种框架PHP开发常用框架一、CI框架CI框架是一个简单快速的PHPMVC轻量级框架,它执行效率高,快速简洁,代码量少,适合中小型项目开发,也可以做大型项目,但扩展能力不是很好。优势:框架比较简单,适合入门开发,易学,上手快,静态化很容易,文档比较详细。缺点:由于框架较小,所以功能不完全,比如使用mongoDB就要自己实现接口,对数据库的操作不够安全(写入

2023-09-25 21:58:25
web前端开发制作动态网页 php动态网站开发是什么
web前端开发制作动态网页 php动态网站开发是什么

web前端动态网页开发主流技术有哪些?目前主流的框架是:Vue、React、Angular三大框架。2020年新增的开发有:小程序云开发、react轻量级框架DvaJS和UmiJS、Vue企业级实战项目与框架、Flutter、React-Native实战项目。框架详解:1.AngularAngular原名angularJS诞生于2009年,之前我们

2023-10-11 14:53:55
php静态网页框架 如何用PHP输出静态页面
php静态网页框架 如何用PHP输出静态页面

如何用PHP输出静态页面用PHP输出静态页面有2种方法一种是利用模板技术,另一种是用ob系列函数。两种方法,看起来都差不多,但是实际上,却是不同的。第一种:利用模板目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smart template等。它们每一种模板,都有一个获取输出内容的函数。我们生成静态页面的方法,就是利用了这个函数。用这个方法的优点是,代码比较清晰,可读

2023-09-12 20:16:53
php静态框架 php实现静态化方法是什么
php静态框架 php实现静态化方法是什么

php实现静态化方法是什么php实现静态化的方法:1、改写访问地址,能够通过URL的PATHINFO模式来改动它;2、站点能够在用户访问站点之前就通过一定的程序来进行静态化。php实现静态化的方法:PHP站点开发过程中,因为搜索引擎对PHP页面搜鹿和html页面的收录有一定的区别,为了站点的推广或者SEO的须要,要对站点进行一定的静态化。静态化并非页面中没有动画等元素,而是指网页的

2023-09-01 14:41:18