PHP页面静态化两种实现方案(模板标签)
方案:使用模板替换技术(没有时间延迟)
代码如下 | 复制代码 |
/* //5.文件必须关闭 //news.tpl模板文件 |
方案:如果静态文件存在,且生成时间30秒内,直接返回静态页面(有时间延迟)
代码如下 | 复制代码 |
/* //1.主要代码 //这里也可以使用DB工具类 |
从上面看我们头一种生成静态页面的方法更合适于页面的后期维护哦,后者是比较难维护的哦,推荐使用第一种办法。
下面一个自己开发应用中会常用到的一款数据库操作类代码,下面有两个文件一个是配置文件一个是操作数据库类,最后简单的列举了这个例类的调用方法。配置文件 config.db.php
代码如下 | 复制代码 |
|
数据库操作类
代码如下 | 复制代码 |
<!--?php |
使用方法
代码如下 | 复制代码 |
$db = new DB(); |
实例说明
上传图片到服务器,是程序开发过程中必不可少的一个功能。它不但可以达到图片共享的目的,而且可以提高网站的访问量,丰富网站的内容。在本实例中,讲解如何通过POST方式实现多图片上传。
关键技术
多文件上传的关键是如何定义上传文件元素的名称及如何判断上传文件的数量。在本实例中,以数组的形式定义上传文件的名称(上传文件的名称是“files[]”)。为了达到可以上传任意数量图片(4个图片以内)的目的,在对上传文件进行处理的过程中应用array_filter()函数和回调函数去除数组中的空元素。
array_filter()函数,用回调函数过滤数组中的单元,语法如下:
array array_filter(array input[,callback callback])
array_filter()函数依次将input数组中的每个值传递到callback函数。如果callback函数返回TRUE,则input数组的当前值会被包含在返回的结果数组中,并且数组的键名保留不变。
说明:在回调函数中不要对数组进行修改操作,例如,增加或者删除数组中的元素,如果一旦数组改变,那么此函数的运用也就没有意义了。如果没有提供callback()函数,array_filter()将删除input中所有等值为FALSE的元素。
本实例中定义的回调函数是check(),用于验证数组中的元素值是否为空,其语法如下:
代码如下 | 复制代码 |
function check($var){//验证数组的返回值是否为空 return($var!=""); } |
设计过程
(1)创建index.php文件。添加表单,设置文件域、提交按钮,使用POST方法,设置enctype="multipart/form-data",将数据提交到index_ok.php页,完成多个文件的上传操作,其关键代码如下:
代码如下 | 复制代码 |
<table width="750"border="0"cellspacing="0"cellpadding="0"> <form action="index_ok.html"method="post"enctype="multipart/form-data"name="form1"> <tr> <td width="100"height="25"align="right"class="STYLE1">内容1:</td> <td width="150"align="center"><input name="files[]"type="text"id="files[]"size="15"></td> <td align="left"><input name="picture[]"type="file"id="pcture[]"size>="30"></td> </tr> <tr> <td height="25"align="right"class="STYLE1">内容2:</td> <td width="center"><input name="files[]"type="text"id="files[]"size="15"></td> <td align="left"><input name="picture[]"type="file"id="pcture[]"size>="30"></td> </tr> <tr> <td colspan="3"align="center"> <input type="image"name="imageField"src="images/bg_09.jpg"> <input type="image"name="imgeField2"src="images/bg_11.jpg"></td> </tr> </form> </table> |
(3)创建index.php文件获取表单中提交的数据,将多个文件存储到服务器中,将文件的名称和存储路径存储到数据库中,其代码如下:
代码如下 | 复制代码 |
<?php header("Content-type:text/html;charset=UTF-8"); //设置文件编码格式 include"conn/conn.php"; //包含数据库链接文件 if($_POST[files]!=""){ if(! is_dir("./upfile")){ mkdir("./upfile");//创建上传文件存储文件夹 } $data=date("Y-m-d H:m:s");//定义时间 function check($var){ //验证数组的返回值是否为空 return($var!="");//如果不为空则返回数组元素 } $files=array_filter($_POST["files"],"check");//去除数组中空值 $array=array_filter($_FILES["picture"]["name"],"check"); //去除数组中空值 foreach=($aarray as $key=>value){ //循环读取数组中数据 $path='upfile/'.time().$key.strtolower(strstr($value,".")); //定义上传文件存储位置 move_uploaded_file($_FILES["picture"]["tmp_name"][$key],$path);//执行上传操作 $query="insert into tb_up_file(file_test,data,file_name)values('$path','$data''$files[$key]')"; $result=mysql_query($query); } echo"<script> alert('图片上传成功');window.location.href='index.html';</script>"; } >? |
秘笈心法
通过伪静态技术隐藏PHP文件后缀。
首先,修改Apache服务器的配置文件httpd.conf。打开httpd.conf文件,定位到如下位置:
代码如下 | 复制代码 |
#LoadModule rewrite_module modules/mod_rewrite.so |
将该项前面的“#”去掉后启动该项。
然后,查找httpd.conf文件,找到其中的AllowOverride项,将它的值都修改为All。保存并重新启动Apache服务器,使修改生效。
最后,在实例根目录下创建.htaccess文件,实现对PHP文件后缀的隐藏操作。.htaccess文件的代码如下:
代码如下 | 复制代码 |
RewriteEngine On#启动项 RewriteRule^index.html$ index.php RewriteRule^ndex_ok.html$ index_ok.php RewriteRule^index-([0-9]+)-([0-9]+)-([0-9]+)\.html$ index.php?vv=$1&ljjl=$2&page=$3[L] |
代码如下 | 复制代码 |
通过正则表达式对文件的后缀和传递的参数进行匹配,完成对PHP文件后缀的隐藏操作。
以前人记得我有介绍过在php中CLI模式传参数的几个方法,下面我再来给大家详细的介绍一下关于CLI模式传参数的例子,希望例子能帮助到各位。
在CLI(命令行界面 Command Line Interface)传入参数呢的3种方法。
一. getopt函数(PHP 4 >= 4.3.0, PHP 5)
建立文件:test1.php 代码如下
<?php
$opt= getopt('m:n:');
print_r($opt);
?>
然后运行命令
php test1.php -maaaaaa -nbbbbbbb
结果如下:
array(
[m] => aaaaaa
[n] => bbbbbbb
)
详情请看手册 :http://www.php.net/manual/zh/function.getopt.php
二. $argv
建立文件:test2.php 代码如下
<?php
var_dump($argv);
?>
然后运行命令
php test2.php 1 2 3 a b c
结果如下:
array(7){
[0]=>string(9) “test2.php”
[1]=>string(1) “1″.
[2]=>string(1) “2″
[3]=>string(1) “3″
[4]=>string(1) “a”
[5]=>string(1) “b”
[6]=>string(1) “c”
}
详情参见手册:http://www.php.net/manual/zh/reserved.variables.argv.php
三. STDIN
建立文件:test3.php 代码如下
<?php
fwrite(STDOUT, "Enter your name: ");
$name = trim(fgets(STDIN));
fwrite(STDOUT, "Hello, $name!");
?>
然后运行命令
php test3.php
结果如下:
此时屏幕输出:Enter your name:
我们在后面输入:111cn.net然后回车
此时屏幕会出现Hhellow,111cn.net
传值:是把实参的值赋值给行参 ,那么对行参的修改,不会影响实参的值
传引用 :真正的以地址的方式传递参数传递以后,行参和实参都是同一个对象,只是他们名字不同而已对行参的修改将影响实参的值
代码如下 | 复制代码 |
$b=1; //定义变量2 $1= &$b; //将变量2的引用传给变量1 echo $b.'<br />'; //显示为1 echo $a; $a= 2; //把2赋值给变量1 echo $b; //显示为2 |
一,php实例
1,传值
. 代码如下:
代码如下 | 复制代码 |
<?php |
2,传引用
. 代码如下:
代码如下 | 复制代码 |
<?php |
3,函数传值
. 代码如下:
代码如下 | 复制代码 |
<?php |
4,函数传引用
. 代码如下:
代码如下 | 复制代码 |
<?php |
5,函数传引用2
. 代码如下:
代码如下 | 复制代码 |
<?php |
相关文章
- 1、先讲讲JQuery的概念,JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队。其实 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用简单的一些代...2014-05-31
- 这篇文章主要介绍了JS创建Tag标签的方法,结合具体实例形式分析了javascript动态操作页面HTML元素实现tag标签功能的步骤与相关操作技巧,需要的朋友可以参考下...2017-06-15
深入解析WordPress中加载模板的get_template_part函数
这篇文章主要介绍了WordPress中加载模板的get_template_part函数,其中重点讲解了其函数钩子的使用,需要的朋友可以参考下...2016-01-14- mysql安装成功后有几个默认的配置模板,列表如下: my-huge.cnf : 用于高端产品服务器,包括1到2GB RAM,主要运行mysql my-innodb-heavy-4G.ini : 用于只有innodb的安装,最多有4GB RAM,支持大的查询和低流量 my-large.cnf : 用于...2015-03-15
- 对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题...2015-10-21
- 1、简介Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目...2014-05-31
- 这篇文章主要介绍了C# 如何设置label(标签)控件的背景颜色为透明,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2020-12-08
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
这篇文章主要介绍了matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel()),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23- 这篇文章主要介绍了C#删除UL LI中指定标签里文字的方法,涉及C#针对页面HTML元素进行正则匹配与替换的相关操作技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了Ionic默认的Tabs模板使用实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-09-01
- 用灵动标签(e:loop)可以实现各种幻灯效果,本节讲解制作幻灯的基本方法。 如本站JS焦点图频道里的大部分幻灯图片效果都可以用灵动标签调用的。 ...2015-12-30
- 在网页中,我们可以将JavaScript代码放在html文件中任何位置,但一般放在head或body标签里面。一般来说,<script>元素放在哪里与其的功能作用是紧密相关的,通过本文我们一起学习下...2016-01-18
- 有时候我们在建站的过程当中需要调用内容页中正文的第一张图片(并不是缩略图),这样就会无从下手,但其实对不懂开发的站长是太难了,往往是会用标题图片来取代,下面分享网友们贡献出...2015-12-30
- 带上下箭头jquery垂直tab选项卡切换标签,技持左侧列表上下滚动,滚动到底部带信息提示。复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml...2015-03-15
- 这篇文章主要介绍了Springboot使用thymeleaf动态模板实现刷新,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-08-31
- 这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
- 最近在开发一个项目,其中有需求要求我们把一段html转换为一般文本返回,使用正则表达式是明智的选择,下面小编给介绍下C#使用正则表达式过滤html标签,需要的朋友参考下...2020-06-25
- 这篇文章主要介绍了基于mybatis中<include>标签的作用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-20
- 这篇文章主要介绍了WordPress中获取所使用的模板的页面ID的简单方法,通过这个方法来获取页面的链接是比较方便的,需要的朋友可以参考下...2016-01-04
- Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式,下面我们来看一篇关于HTML 标签中的 Markdown 语法...2016-09-20