php页面缓存实现方法总结范文

时间:2019-05-12 02:15:39下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《php页面缓存实现方法总结范文》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《php页面缓存实现方法总结范文》。

第一篇:php页面缓存实现方法总结范文

php页面缓存实现方法总结

在php页面缓存主要用到的是ob系列函数,如ob_start(),ob_end_flush(),ob_get_contents(),但是更高级的缓存是不使用这些函数的,本文章最后一个实现就有讲到,大家可参考一下。ob_start():页面缓存开始的标志,此函数一下的内容直至ob_end_flush()或者ob_end_clean()都保存在页面缓存中;

ob_get_contents():用来获取页面缓存中的内容,获取到以后呢,我们就可以想怎么处理这些内容都行了,过滤字段啦,匹配内容啦,都可以~~~ :)

ob_end_flush():表示页面缓存结束。并且经我验证,缓存的内容将输出到当前页面上,也就是可以显示缓存内容。

用此三个php函数,就可以实现强大的功能。如果数据库查询量较大,可以用cache来解决这个问题。

下面是编码部分。

1.初始化函数,一般是设置页面缓存路径、缓存文件命名格式等,可按个人喜好自定义。这里用到的识别ID是经加密的$_SERVER[REQUEST_URI]参数。这个函数中最后还有一个if判断:若未过缓存期,则加载缓存文件,否则加载源文件。

代码如下 复制代码 function page_init(){

$url = $_SERVER['REQUEST_URI'];//子url,该参数一般是唯一的$pageid = md5($url);

$dir = str_replace('/','_',substr($_SERVER['SCRIPT_NAME'],1,-4));

//目录命名方式,如exp_index

if(!file_exists($pd = PAGE_PATH.$dir.'/'))@mkdir($pd,0777)or die(“$pd目录创建失败”);

//如cache/page/exp_index/

define('PAGE_FILE',$pd.$pageid.'.html');

//如cache/page/exp_index/cc8ef22b405566745ed21305dd248f0e.html

$contents = file_get_contents(PAGE_FILE);//读出

if($contents && substr($contents, 13, 10)> time())//对应page_cache()函数中加上的自定义头部

{

echo substr($contents, 27);

exit(0);

}

return true;

}

2.页面缓存函数,这里使用到一个技巧:在缓存文件的内容中加上一个头部信息--过期时间,所以每次只需要对头部中的过期时间和当前时间进行比较(在page_init()函数中进行)就能判断缓存是否过期了。

代码如下 复制代码

function page_cache($ttl = 0){

$ttl = $ttl ? $ttl : PAGE_TTL;//缓存时间,默认3600s

$contents = ob_get_contents();//从缓存中获取内容

$contents = “n”.$contents;

//加上自定义头部:过期时间=生成时间+缓存时间

file_put_contents(PAGE_FILE, $contents);//写入缓存文件中

ob_end_flush();//释放缓存

}

3.函数使用,注意这两个函数有先后执行顺序,还有别忘了ob_start()

代码如下 复制代码

page_init();//页面缓存初始化

ob_start();//开启缓存

...//代码段

page_cache(60);//一般是最后一行

?> 例2

下面做个示例来说明PHP页面缓存技术:

代码如下 复制代码

function cache_start($_time, $dir){

$cachefile = $dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html';

$cachetime = $_time;

ob_start();

if(file_exists($cachefile)&&(time()-filemtime($cachefile)< $cachetime))

{

include($cachefile);

ob_end_flush();

exit;

} }

function cache_end($dir){

$cachefile = $dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html';

$fp = fopen($cachefile, 'w');

fwrite($fp, ob_get_contents());

fclose($fp);

ob_end_flush();}

cache_start($_time, $dir);//以下是输出的内容,放在cache_start和cache_end两个方法之间 for($i=0;$i<5;$i++){

echo $i;

sleep(1);} cache_end($dir);?> 例

利用生成文件做缓存

代码如下 复制代码

* @copyright 2009-3-13 * @param string $cache_folder 缓文件夹

* @param int $cache_create_time 文件缓存时间 * @example $cache=new Esj_Cache('./_cache',100)* @example $cache->read_cache()读取缓存并输出

* @example $cache->creatre_cache()创建缓存文件(放在文件未尾)* @example $cache->list_file()返回所有缓存文件列表 * @example $cache->del_file()删除所有缓存文件 */

class Esj_Cache{ private $cache_folder=null;//cacher文件夹 private $wroot_dir=null;//站点目录

private $cacher_create_time=null;//cacher文件的建立时间

public function __construct($cache_foldername,$cacher_time=100){ ob_start();$this->wroot_dir=$_SERVER['DOCUMENT_ROOT'];$this->cache_folder=$cache_foldername;$this->cacher_create_time=$cacher_time;}

public function read_cache(){ try { if(self::create_folder($this->cache_folder)){ self::get_cache();//输出缓存文件信息 }else { echo “缓存文件夹创建失败!”;return false;}

}catch(Exception $e){ echo $e;return false;} }

//测试缓存文件夹是否存在

private function exist_folder($foler){ if(file_exists($this->wroot_dir.“/”.$foler)){ return true;}else { return false;} } //建立一个新的文件夹

private function create_folder($foler){ if(!self::exist_folder($foler)){ try{ mkdir($this->wroot_dir.“/”.$foler,0777);chmod($this->wroot_dir.“/”.$foler,0777);return true;}catch(Exception $e){ self::get_cache();//输出缓存 return false;} return false;} else { return true;} }

//读取缓存文件

private function get_cache(){ $file_name=self::get_filename();if(file_exists($file_name)&&((filemtime($file_name)+$this->cacher_create_time)> time())){ $content=file_get_contents($file_name);if($content){ echo $content;ob_end_flush();exit;}else { echo “文件读取失败”;exit;} } } //返回文件的名字

private function get_filename(){ $filename=$file_name=$this->wroot_dir.'/'.$this->cache_folder.'/'.md5($_SERVER['QUERY_STRING']).“.html”;return $filename;}

//建立缓存文件

public function create_cache(){ $filename=self::get_filename();if($filename!=“"){ try{ file_put_contents($filename,ob_get_contents());return true;}catch(Exception $e){ echo ”写缓存失败:“.$e;exit();} return true;} }

// 取得缓存中的所有文件 public function list_file(){ $path=$this->cache_folder;if($handle = opwww.shanxiwang.netendir($path)){ while(false!==($file = readdir($handle))){ if($file!=”.“ && $file!=”..“){ $path1=$path.”/“.$file;if(file_exists($path1)){ $result[]=$file;} } } closedir($handle);} return $result;}

//删除缓存中的所有文件 public function del_file(){ $path=$this->cache_folder;if($handle = opendir($path)){ while(false!==($file = readdir($handle))){ if($file!=”.“ && $file!=”..“){ $path1=$path.”/".$file;if(file_exists($path1)){ unlink($path1);} } } closedir($handle);} return true;} } ?>

第二篇:asp刷新页面实现方式总结

网页刷新代码-刷新页面实现方式总结篇 自动刷新页面的实现方法总结: 1) 10表示间隔10秒刷新一次 2) 如果是你要刷新某一个iframe就把window给换成frame的名字或ID号 3) 4>

function abc(){ window.location.href=“/blog/window.location.href”;setTimeout(“abc()”,10000);} 刷新本页:

Response.Write(“”)

刷新父页:

Response.Write(“”)

转到指定页: Response.Write(“”)

刷新页面实现方式总结(HTML,ASP,JS)'by aloxy

定时刷新:

1,

说明:url是要刷新的页面URL地址 2000是等待时间=2秒,2,

说明:

n is the number of seconds to wait before loading the specified URL.url is an absolute URL to be loaded.n,是等待的时间,以秒为单位 url是要刷新的页面URL地址

3,<%response.redirect url%>

说明:一般用一个url参数或者表单传值判断是否发生某个操作,然后利用response.redirect 刷新。

4,刷新框架页 〈script language=javascript>top.leftFrm.location.reload();parent.frmTop.location.reload();

Response.Write(“”);//open Response.Write(“”);

在子窗体页面代码head中加入

刷新的内容加在 if(!IsPostBack)中

在框架页中右面刷新左面 //刷新框架页左半部分

Response.Write(“”);

页面定时刷新功能实现 有三种方法:

1,在html中设置:

xxxxx之後加入下面这一行即可!定时刷新: 10代表刷新间隔,单位为秒

2.jsp <% response.setHeader(“refresh”,“1”);%> 每一秒刷新一次

3.使用javascript:

//第二个刷新父页面的函数

//第三个打开窗口

同时刷新框架网页中的多个页面

现在有个框架页面Index_BianJ.aspx,上面有个toppage,leftpage.rightpage, bottompage四个页面。

本人想在leftpage页面中点击一个按钮,然后想刷新整个Index_BianJ.aspx页面,当然也包括四个小页面。

尝试用Response.Redirect(string.Format(“Index_BianJ.aspx?zhcyh=” + Convert.ToString(Session[“ZhuCYHM”])));来实现,但是行不通,如果这样做只会在leftpage页面中更新。其余页面没什么变化。

最后使用Response.Output.Write(“”);配合这JS语言来实现的框架中多个页面同时刷新的功能。

或者在HTML代码中添加如下代码也可以实现

第三篇:用php实现的各种排序算法总结

www.xiexiebang.com 用php实现的各种排序算法总结

优化php性能的五个实用技巧:

以下是五个优化技巧,熟练掌握后对于开发还是很有帮助的。

1.对字符串使用单引号

PHP 引擎允许使用单引号和双引号来封装字符串变量,但是这个是有很大的差别的!使用双引号的字符串告诉 PHP 引擎首先去读取字符串内容,查找其中的变量,并改为变量对应的值。一般来说字符串是没有变量的,所以使用双引号会导致性能不佳。最好是使用字符串连接而不 是双引号字符串。

BAD:

$output = “This is a plain string”;

GOOD:

$output = 'This is a plain string';

BAD:

$type = “mixed”;

$output = “This is a $type string”;

GOOD:

$type = 'mixed';

$output = 'This is a '.$type.' string';

2.不要随便就复制变量

有时候为了使 PHP 代码更 加整洁,一些 PHP 新手(包括我)会把预定义好的变量复制到一个名字更简短的变量中,其实这样做的结果是增加了一倍的内存消耗,只会使程序更加慢。试想一下,在下面的例子 中,如果用户恶意插入 512KB 字节的文字到文本输入框中,这样就会导致 1MB 的内存被消耗!

BAD:

$description = $_POST['description'];shishicaimh.com www.xiexiebang.com

echo $description;

GOOD:

echo $_POST['description'];

3.使用 echo 函数来输出字符串

使用 echo()函数来打印结果出了有更容易阅读之外,在下个例子中,你还可以看到有更好的性能。

BAD:

print($myVariable);

GOOD:

echo $myVariable;

4.不要在 echo 中使用连接符

很***PHP 程序员(有包括我)不知道在用 恶臭 输出多个变量的时候,其实可以使用逗号来分开的,而不必用字符串先把他们先连起来,如下面的第一个例子中,由于使用了连接符就会有性能问题,因为这样就会 需要 PHP 引擎首先把所有的变量连接起来,然后在输出,而在第二个例子中,PHP 引擎就会按照循序输出他们。

BAD:

echo 'Hello, my name is'.$firstName.$lastName.' and I live in '.$city;

GOOD:

echo 'Hello, my name is' , $firstName , $lastName , ' and I live in ' , $city;

5.使用 switch/case 代替 if/else

对于只有单个变量的判断,使用 switch/case 语句而不是 if/else 语句,会有更好的性能,并且代码更加容易阅读和维护。

BAD:

if($_POST['action'] == 'add‘){

shishicaimh.com www.xiexiebang.com

addUser();

} elseif($_POST['action'] == 'delete’){

deleteUser();

} elseif($_POST['action'] == 'edit‘){

editUser();

} else {

defaultAction();

}

GOOD:

switch($_POST['action']){

case 'add':

addUser();

break;

case 'delete':

用php实现的各种排序算法,冒泡排序,交换排序,选择法排序,插入法排序,快速排序,根据实际情况可选则不同的排序算法。效率也有所不同。

冒泡排序:

function BubbleSort($arr){

$num = count($arr);

for($i=1;$i<$num;$i++){

for($j=$num-1;$j>=$i;$j--){

if($arr[$j]<$arr[$j-1]){

$iTemp = $arr[$j-1];

$arr[$j-1] = $arr[$j];

$arr[$j] = $iTemp;

}

}

}

return $arr;

}

?> shishicaimh.com www.xiexiebang.com

交换法排序:

function ExchangeSort($arr){

$num = count($arr);

for($i=0;$i<$num-1;$i++){

for($j=$i+1;$j<$num;$j++){

if($arr[$j]<$arr[$i]){

$iTemp = $arr[$i];

$arr[$i] = $arr[$j];

$arr[$j] = $iTemp;

}

}

}

return $arr;

}

?>

选择法排序:

function SelectSort($arr){

$num = count($arr);

for($i=0;$i<$num-1;$i++){

$iTemp = $arr[$i];

$iPos = $i;

for($j=$i+1;$j<$num;$j++){

if($arr[$j]<$iTemp){

$iTemp = $arr[$j];

$iPos = $j;

}

}

$arr[$iPos] = $arr[$i];

$arr[$i] = $iTemp;

}

return $arr;

}

?>

插入法排序:

function InsertSort($arr){

$num = count($arr);

for($i=1;$i<$num;$i++){

$iTemp = $arr[$i];

$iPos = $i-1;

while(($iPos>=0)&&($iTemp<$arr[$iPos])){

$arr[$iPos+1] = $arr[$iPos];

$iPos--;

}

$arr[$iPos+1] = $iTemp;shishicaimh.com www.xiexiebang.com

}

return $arr;

}

?>

快速排序 :

function QuickSort($arr){

$num = count($arr);

$l=$r=0;

for($i=1;$i<$num;$i++){

if($arr[$i] < $arr[0]){

$left[] = $arr[$i];

$l++;

}else{

$right[] = $arr[$i];

$r++;

}

}

if($l > 1){

$left = QuickSort($left);

}

$new_arr = $left;

$new_arr[] = $arr[0];

if($r > 1){

$right = QuickSort($right);

}

for($i=0;$i<$r;$i++){

$new_arr[] = $right[$i];

}

return $new_arr;

}

$arr = array(7,1,6,5,2);

$arr_new = QuickSort($arr);

?>

deleteUser();

break;

case 'edit':

editUser();

break;

default: shishicaimh.com

第四篇:net(c#)跨页面传值方法总结

.net(c#)跨页面传值方法总结(2011-04-25 11:03:24)转载标签: it 方式1:

在接收页 的html代码里加上一行: <%@ Reference Page = “WebForm1.aspx” %>

WebForm1 fp=(WebForm1)Context.Handler;this.TextBox1.Text=fp.name;//name 是第一页的public变量

Context 提供对整个当前上下文(包括请求对象)的访问。您可以使用此类共享页之间的信息。

方式2:GET方式 在发送页

public int sum=0;

int i =int.Parse(this.TextBox1.Text)*2;

Server.Transfer(“WebForm2.aspx?sum=”+i);

接收页

this.TextBox1.Text=Request[“sum”].ToString();or this.TextBox1.Text=Request.Params[“sum”].ToString();this.TextBox1.Text=Request.QueryString[“sum”];

方法3:全局变量

发送页:

Application[“sum”]=this.TextBox1.Text;Server.Transfer(“WebForm2.aspx”);

接收页:

this.TextBox1.Text=(string)Application[“sum”];

Application实质上是整个虚拟目录中所有文件的集合,如果想在整个应用范围内使用某个变量值,Application对象将是最佳的选择

方法4:

发送页:

1.定义静态变量: public static string str=“";2.str=this.TextBox1.Text;Server.Transfer(”webform2.aspx“);接收页:

1.引入第一页的命名空间:using WebApplication1;2 this.TextBox1.Text=WebForm1.str;

另外三种最常见的传值

ASP.NET WEB FORMS 给开发者提供了极好的事件驱动开发模式。然而这种简单的应用程序开发模式却给我们带来了一些小问题,举个例子,在传统的ASP应用程序中,你能够通过 POST方法很容易的把一个值或多个值从一个页面传送到另一个页面(request()/request.form()/request.querystring()),用同样的方法在ASP.NET中实现有点麻烦。在这里,通过其他方式来解决这种情形。ASP.NET为我们提供了三种方式,一种是可以通过用QueryString来传送相应的值,再一种是通过session变量来传送相应的值,还有就是通过 Server.Transfer方法来实现。

一、使用Querystring

Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了。下面通过一个小例子来完成传值工作,步骤如下:

1、创建一个web form

2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2

3、为button按钮创建click事件

代码如下:

private void button_click(object sender,System.EventArgs e){ string url;url=”webform2.aspx?name=“+TextBox1.Text + ”&Email=“+TextBox2.Text;Response.Redirect(url);}

4、新建一个目标页面命名为webform2

5、在webform2中放置两个Label1,Label2 在webform2的Page_Load中添加如下代码:

private void Page_Load(object sender,System.EventArgs e){ Label1.Text=Request.QueryString[”name“];Label2.Text=Request.QueryString[”Email“];} 运行,即可看到传递后的结果了。

二、使用Session变量

使用Session变量传值是一种最常见的方式了,此中方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值removed后,变量才会消失。举个例子看看:

1、创建一个web form

2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2

3、为button按钮创建click事件 代码如下:

private void button_click(object sender,System.EventArgs e){ Session[”Name“]=TextBox1.Text;Session[”Email“]=TextBox2.Text;Response.Redirect(”webform2.aspx“);}

4、新建一个目标页面命名为webform2

5、在webform2中放置两个Label1,Label2 在webform2的Page_Load中添加如下代码:

private void Page_Load(object sender,System.EventArgs e){ Label1.Text=Session[”Name“].ToString();Label2.Text=Session[”Email“].ToString();Session.Remove(”Name“);Session.Remove(”Email“);} 运行,即可看到传递后的结果了。

三、使用Server.Transfer

虽然这种方法有点复杂,但也不失为一种在页面传值的方式。举个例子看看:

1、创建一个web form

2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2

3、为button按钮创建click事件 代码如下:

private void(object sender,System.EventArgs e){ Server.Transfer(”webform2.aspx“);}

4、创建过程来返回TextBox1,TextBox2控件的值代码如下: public string Name { get {return TextBox1.Text;} } public string Email { get{return TextBox2.Text;} }

5、新建一个目标页面命名为webform2

6、在webform2中放置两个Label1,Label2 在webform2的Page_Load中添加如下代码:

private void Page_load(object sender,System.EventArgs e){ //创建webform的实例 webform1 wf1;//获得实例化的句柄

wf1=(webform1)Context.Handler;Label1.Text=wf1.Name;Label2.Text=wf1.Email;}

常见的就是这三种方法。

上面方法一中的传值问题

问:在asp中页面间传值使用url?方式 例如 ”index.asp?aaa=华东五市+水乡六日游“ 因为字符串”华东五市+水乡六日游“中间有加号,与asp系统字符串连接符关键字冲突,传过去的变量aaa的值就会变成”华东五市“,请问大家有什么解决办法? 解决:

1.server.urlencode(”华东五市+水乡六日游“)

2.URLEncode The URLEncode method applies URL encoding rules, including escape characters, to a specified string.Syntax Server.URLEncode(string)

Parameters string Specifies the string to encode.Example The following script

<%Response.Write(Server.URLEncode(”http://www.xiexiebang.com“))%>

produces the output

http://www.xiexiebang.com

3.index.asp?aaa=华东五市+水乡六日游 4.自己定义一些特殊字符对应 ”+“,”*“,”#“ 例如,Replace(string,”+“,”CODE01“)

然后到另一个页面在用Replace(string,”CODE01“,”+“)换回来即可了 自己定义一些特殊字符对应 ”+“,”*“,”#“ 例如,Replace(string,”+“,”CODE01“)

然后到另一个页面在用Replace(string,”CODE01“,”+“)换回来即可了

在页面间传递引用

有不少文章讨论怎么在两个页面间传递引用,如果你页面上的对象设置为public的话,你就可以传递他们在页面间。

在页面间传递是使用

Server.Transfer替代Response.Redirect就可以。例子:

-------------In Page A codebehind:

public class PageA : System.Web.UI.Page { public System.Web.UI.WebControls.TextBox TextBox1;public System.Web.UI.WebControls.Button Button1;

// standard page code(Page_Load, etc)//....//....private void Button1_Click(object sender, System.EventArgs e){ Server.Transfer(”b.aspx“);} }

-------------In Page B codebehind:

private void Page_Load(object sender, System.EventArgs e){ PageA myAPage = Context.Handler as PageA;string textboxFromPageA = myAPage.TextBox1.Text;}

因为当使用Server.Transfer时所有的对象(A and B)在服务器上当时都是活动的,你可以引用任何东西。

稍微修改一下b.aspx(uestc95 提供):

Page myPage =(Page)Context.Handler;string textboxFromPageA;textboxFromPageA =((TextBox)myPage.FindControl(”TextBox1“)).Text;

这样在A.aspx中就可以正常的使用protected类型的了

###

1.使用QueryString变量

QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子: a.aspx的C#代码

private void Button1_Click(object sender, System.EventArgs e){ string s_url;s_url = ”b.aspx?name=“ + Label1.Text;Response.Redirect(s_url);}

b.aspx中C#代码

private void Page_Load(object sender, EventArgs e){ Label2.Text = Request.QueryString[”name“];}

2.使用Application 对象变量

Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。a.aspx的C#代码

private void Button1_Click(object sender, System.EventArgs e){ Application[”name“] = Label1.Text;Server.Transfer(”b.aspx“);}

b.aspx中C#代码 private void Page_Load(object sender, EventArgs e){ string name;Application.Lock();name = Application[”name“].ToString();Application.UnLock();}

3.使用Session变量

想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。a.aspx的C#代码

private void Button1_Click(object sender, System.EventArgs e){ Session[”name“] = Label.Text;}

b.aspx中C#代码

private void Page_Load(object sender, EventArgs e){ string name;name = Session[”name“].ToString();}

4.使用Cookie对象变量

这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。

a.aspx的C#代码

private void Button1_Click(object sender, System.EventArgs e){ HttpCookie cookie_name = new HttpCookie(”name“);cookie_name.Value = Label1.Text;Reponse.AppendCookie(cookie_name);Server.Transfer(”b.aspx“);}

b.aspx中C#代码

private void Page_Load(object sender, EventArgs e){ string name;name = Request.Cookie[”name“].Value.ToString();}

5.使用Server.Transfer方法

这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。a.aspx的C#代码 public string Name { get{ return Label1.Text;} } private void Button1_Click(object sender, System.EventArgs e){ Server.Transfer(”b.aspx");}

b.aspx中C#代码

private void Page_Load(object sender, EventArgs e){ a newWeb;//实例a窗体

newWeb =(source)Context.Handler;string name;

第五篇:提高PHP编程技术的方法

www.xiexiebang.com

提高PHP编程技术的方法

下面介绍的是提高PHP编程技术的几种方法。

1、PHP标签

我知道有些人写PHP代码的时候喜欢用缩略标签,但是这可不是个好习惯,因为缩略标签在有些服务器上不能被正确识别,而标准的PHP标签的使用使你可以在任何一台服务器上准确编译你的PHP代码。PHP源码下载down.phperz.com

2、PHP代码的调试

有时我们运行PHP代码的时候会碰到问题并且我们不知道这问题究竟出在哪儿。而PHP中专门有个error_reporting()函数,它可以告诉你你的代码中的每一处错误。如果你希望它显示页面的所有可能出现的错误信息,可以将下面这句代码放在文件的第二行:

error_reporting(E_ALL);

3、使用注释

www.xiexiebang.com

如果你的PHP代码有1200行,那么要搞明白它要做什么是一件很困难的事,解决这个问题的办法就是为你的代码加上注释。

有三中方法在PHP中添加注释: PHP程序员站

以下为引用的内容:

// 你的注释//

# 你的注释

/*你的注释 */

?>

4、PHP代码的缩进

以下为引用的内容:

www.xiexiebang.com

// Settings //

$var1 = “This”;

// Showing Variables //

if($var1 == “This”){

echo“You said This”;

}else{

echo“You said That”;

www.xiexiebang.com

}

?>

5、修正你的PHP文件包含方式

www.xiexiebang.com

PHP代码中,包含另外一个文件之前都会先确定它存在,如下例: down.phperz.com

以下为引用的内容:

if(!file_exists(“layout.inc.php”)){exit(“Error : LayOut File Missing”);}

else{include_once(“layout.inc.php”);}

?>

6、数据库查询

有时你的PHP代码中包含着于数据库的连接,你可能会遇到一些小麻烦,大部分容易出现数据库问题的人都是以这样的形式来写代码的:

以下为引用的内容:

www.xiexiebang.com

?>

运行之后他发现数据并没有插入到数据库中,我们可以这样来解决这个问题: PHP程序员站

以下为引用的内容:

or exit(“MySQL Error : ”.mysql_error());

?>

www.xiexiebang.com

7、缩略类似IF-THEN的语句

假如你接收一个注册页面传递的数据,而你想保证所有信息都已填写,你可能会用包含很多IF-THEN格式的语句,象下面这个:

以下为引用的内容:

if(!$_POST[name]){exit(“Sorry, but you did not fill-in all of the requested fields.”);}

if(!$_POST[email]){exit(“Sorry, but you did not fill-in all of the requested fields.”);}

?>

而实际上你可以通过合并这两行的IF-THEN语句使它只有一行:

以下为引用的内容:

www.xiexiebang.com

if((!$_POST[name])||(!$_POST[email]))

{exit(“Sorry, but you did not fill-in all of the requested fields.”);}

?>

||和OR,&&和AND分别具有相同的意义。

8、使用echo还是print?

大部分人会说“echo和print是相同的”,我同意这个观点。不过echo的运行速度要比print快很多,并且比print少一个字母。echo命令比print出现得晚一些(我这样认为),显然你知道该如何选择了。

9、不时输入一大段HTML语言

我相信很多人都有解决这个的办法,但是我还是想和你说说解决这个的一些办法。

⑴、输入PHP的结束标签,然后就可以随意的输入HTML代码,然

www.xiexiebang.com 后再PHP的开始标签(我不喜欢这样做,因为它看起来很不专业)。

⑵、在每句HTML代码中都加入反斜线(这样是可行的,但是你一直要这样—每一句都要)。

⑶、使用echo或者print命令,仅此而已(推荐): PHP源码下载down.phperz.com

以下为引用的内容:

// Showing a huge chunk of HTML at a time //

echo<<

Large, Orange Text in Font Size 3



More HTML down here..www.xiexiebang.com



Centered text
下载php页面缓存实现方法总结范文word格式文档
下载php页面缓存实现方法总结范文.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    用Js脚本实现页面跳转5则范文

    1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2); 2. history.back. 3. window.history.forward返回下一页 4. window.history.go(返回第几......

    php课程总结

    一、 时间和地点: 每周四上午在F311上课。 二、 课程内容:通过这段时间的学习,我对PHP中的MySQL数据库有了一定的理解。由于以前没有基础,在老师讲课的过程开始有点费尽,尽量记了......

    PHP基础总结

    1、在HTML嵌入PHP脚本有三种办法: <scriptlanguage="php"> //嵌入方式一 echo("test"); </script> <? //嵌入方式二 echo"<br>test2"; ?> <?php //嵌入方式三 echo"<br>test3"; ?> 还......

    php学习总结

    调试/*………*/ //…….#.......... 插入时考虑清楚字段类型避免插入后出现缺值,乱码 @ 屏蔽错误or die 条件显示以前学习php类的总结: 1.php中不能重载,但是能用子类覆盖父类......

    页面功能测试点总结

    页面功能测试点总结 本资料由织雀教育从网上整理,仅供学习交流,请务做商业用途 1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如Link......

    宝贝页面装修总结

    宝贝页面装修总结1:店铺活动营造促销的氛围,渲染店铺特色,促销活动的通告或预告,新款上线的通告或预告,主推款式的海报,大促时可以考虑加入关联营。2:模特图+文案展示上身效果,激发......

    浅析地方旅游门户网站页面优化方法

    浅析地方旅游门户网站页面优化方法 常言道:人靠衣装,佛靠金装,打扮也是很要紧的。这句话充分体现出想要有好的一面就要学会装饰自己,让自己从内到外显得尤为特殊,而对于网站......

    PHP课程总结(精选5篇)

    PHP课程总结 这个学期开设的PHP课程是由聂老师上的,老师很详细的跟我们介绍PHP的语法,然后用实例跟我们讲解,每节课老师都尽心尽责,可是无奈班上的人听的还是寥寥无几,真正掌握的......