久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

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.tmdps.cn 用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.tmdps.cn

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.tmdps.cn

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.tmdps.cn

交換法排序:

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.tmdps.cn

}

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.tmdps.cn“))%>

produces the output

http://www.tmdps.cn

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.tmdps.cn

提高PHP編程技術的方法

下面介紹的是提高PHP編程技術的幾種方法。

1、PHP標簽

我知道有些人寫PHP代碼的時候喜歡用縮略標簽,但是這可不是個好習慣,因為縮略標簽在有些服務器上不能被正確識別,而標準的PHP標簽的使用使你可以在任何一臺服務器上準確編譯你的PHP代碼。PHP源碼下載down.phperz.com

2、PHP代碼的調試

有時我們運行PHP代碼的時候會碰到問題并且我們不知道這問題究竟出在哪兒。而PHP中專門有個error_reporting()函數,它可以告訴你你的代碼中的每一處錯誤。如果你希望它顯示頁面的所有可能出現的錯誤信息,可以將下面這句代碼放在文件的第二行:

error_reporting(E_ALL);

3、使用注釋

www.tmdps.cn

如果你的PHP代碼有1200行,那么要搞明白它要做什么是一件很困難的事,解決這個問題的辦法就是為你的代碼加上注釋。

有三中方法在PHP中添加注釋: PHP程序員站

以下為引用的內容:

// 你的注釋//

# 你的注釋

/*你的注釋 */

?>

4、PHP代碼的縮進

以下為引用的內容:

www.tmdps.cn

// Settings //

$var1 = “This”;

// Showing Variables //

if($var1 == “This”){

echo“You said This”;

}else{

echo“You said That”;

www.tmdps.cn

}

?>

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

www.tmdps.cn

PHP代碼中,包含另外一個文件之前都會先確定它存在,如下例: down.phperz.com

以下為引用的內容:

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

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

?>

6、數據庫查詢

有時你的PHP代碼中包含著于數據庫的連接,你可能會遇到一些小麻煩,大部分容易出現數據庫問題的人都是以這樣的形式來寫代碼的:

以下為引用的內容:

www.tmdps.cn

?>

運行之后他發現數據并沒有插入到數據庫中,我們可以這樣來解決這個問題: PHP程序員站

以下為引用的內容:

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

?>

www.tmdps.cn

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.tmdps.cn

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.tmdps.cn 后再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.tmdps.cn



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的語法,然后用實例跟我們講解,每節課老師都盡心盡責,可是無奈班上的人聽的還是寥寥無幾,真正掌握的......

主站蜘蛛池模板: 国产精品爆乳在线播放不卡| 色欲综合一区二区三区| 色琪琪av中文字幕一区二区| 亚洲精品乱码久久久久久蜜桃图片| 老鲁夜夜老鲁| 无码少妇一区二区浪潮免费| 疯狂做受xxxx高潮欧美日本| 精品人妻无码一区二区三区蜜桃一| 人人澡人人澡人人看添av| 国产chinese男男gay视频网| 艳妇臀荡乳欲伦交换在线播放| 精品久久久久久久久久久国产字幕| 国产精品午夜不卡片在线| 亚洲成av人影院在线观看网| 国产∨亚洲v天堂无码久久久| 国内揄拍国内精品少妇| 亚洲AV秘?无码一区二区三动图| 中文字幕人乱码中文字幕| 亚洲人成伊人成综合网小说| 精品无码国产一区二区三区av| 欧美日韩视频在线第一区| 老太婆性杂交欧美肥老太| 国产成人av在线免播放app| 中文字幕av一区中文字幕天堂| 狼人青草久久网伊人| 亚洲vav在线男人的天堂| 强行无套内谢大学生初次| 少女高清影视在线观看动漫| 国产免费无码av片在线观看不卡| 国产成人无码免费看片软件| 国产麻豆一精品av一免费软件| 国产精品久久久久久久久ktv| 在办公室被c到呻吟的动态图| 亚洲成av人片久久| 日韩内射美女人妻一区二区三区| 牛鞭伸入女人下身的真视频| 国产精品玖玖玖在线| 国模gogo无码人体啪啪| 中国极品少妇videossexhd| 狠狠色丁香久久综合频道日韩| 国产无遮挡又黄又爽动态图|