第一篇: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中设置:
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 文档为doc格式 1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2); 2. history.back. 3. window.history.forward返回下一页 4. window.history.go(返回第几...... 一、 时间和地点: 每周四上午在F311上课。 二、 课程内容:通过这段时间的学习,我对PHP中的MySQL数据库有了一定的理解。由于以前没有基础,在老师讲课的过程开始有点费尽,尽量记了...... 1、在HTML嵌入PHP脚本有三种办法: <scriptlanguage="php"> //嵌入方式一 echo("test"); </script> <? //嵌入方式二 echo"<br>test2"; ?> <?php //嵌入方式三 echo"<br>test3"; ?> 还...... 调试/*………*/ //…….#..........
插入时考虑清楚字段类型避免插入后出现缺值,乱码
@ 屏蔽错误or die 条件显示以前学习php类的总结:
1.php中不能重载,但是能用子类覆盖父类...... 页面功能测试点总结 本资料由织雀教育从网上整理,仅供学习交流,请务做商业用途 1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如Link...... 宝贝页面装修总结1:店铺活动营造促销的氛围,渲染店铺特色,促销活动的通告或预告,新款上线的通告或预告,主推款式的海报,大促时可以考虑加入关联营。2:模特图+文案展示上身效果,激发...... 浅析地方旅游门户网站页面优化方法
常言道:人靠衣装,佛靠金装,打扮也是很要紧的。这句话充分体现出想要有好的一面就要学会装饰自己,让自己从内到外显得尤为特殊,而对于网站...... PHP课程总结 这个学期开设的PHP课程是由聂老师上的,老师很详细的跟我们介绍PHP的语法,然后用实例跟我们讲解,每节课老师都尽心尽责,可是无奈班上的人听的还是寥寥无几,真正掌握的......
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。 用Js脚本实现页面跳转5则范文
php课程总结
PHP基础总结
php学习总结
页面功能测试点总结
宝贝页面装修总结
浅析地方旅游门户网站页面优化方法
PHP课程总结(精选5篇)