欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
36計教您如何提高PHP代碼質(zhì)量(二) 轉自csdn

 在某地方收集所有輸入, 一次輸出給瀏覽器

這稱(chēng)為輸出緩沖, 假如說(shuō)你已在不同的函數輸出內容:

  1. <?php  
  2.   function print_header()    
  3.   {    
  4.       echo "<div id='header'>Site Log and Login links</div>";    
  5.   }       
  6.   function print_footer()    
  7.   {    
  8.       echo "<div id='footer'>Site was made by me</div>";    
  9.   }   
  10.   print_header();    
  11.   for($i = 0 ; $i <100; $i++)    
  12.   {    
  13.         echo "I is : $i <br />";    
  14.   }   
  15.   print_footer();   
  16.   ?>  
以上這種情況,可以在某地方集中收集輸出. 你可以存儲在函數的局部變量中,也可以使用ob_start和ob_end_clean. 使用PHP ob_start()函數打開(kāi)服務(wù)器server的cache,這樣可以保證cache的內容在你調用flush(),ob_end_flush()(或程序執行完畢)之前不會(huì )被輸出。如下:
  1. <?php  
  2.   function print_header()    
  3.   {    
  4.       echo "<div id='header'>Site Log and Login links</div>";    
  5.   }       
  6.   function print_footer()    
  7.   {    
  8.       echo "<div id='footer'>Site was made by me</div>";    
  9.   }   
  10.   ob_start();  
  11.   print_header();    
  12.   for($i = 0 ; $i <100; $i++)    
  13.   {    
  14.         echo "I is : $i <br />";    
  15.   }   
  16.   print_footer();   
  17.   $ok = ob_get_contents();  
  18.   ob_end_clean();  
  19.   echo $ok;  
  20.   ?>  

如果上面的這個(gè)還不很清楚,不能看出收集輸出的作用,我們來(lái)看下一個(gè)代碼

  1. <?php  
  2. ob_start();//buf1  
  3. echo ‘multiple’;  
  4. ob_start();//buf2  
  5. echo ‘bufferswork’;  
  6. $buf1 = ob_get_contents();  
  7. ob_end_clean();  
  8. $buf2 = ob_get_contents();  
  9. ob_end_clean();  
  10. ob_start();  
  11. for($i = 0 ; $i <100; $i++)    
  12.   {    
  13.         echo "I is : $i <br />";    
  14.   }   
  15. $ok = ob_get_contents();  
  16. ob_end_clean();  
  17. echo $ok;  
  18. echo $buf1;  
  19. echo "<br/>";  
  20. echo $buf2;  
  21. ?>  
上面這段代碼首先輸出for循環(huán)的結果,然后是第二個(gè)字符串,最后輸出第一個(gè)字符串,可知ob_start(),ob_get_contents(),ob_end_clean();三個(gè)函數的使用方法。

8. 發(fā)送正確的mime類(lèi)型頭信息, 如果輸出非html內容的話(huà)。

xml可以按下面這樣寫(xiě):

  1. $xml = '<?xml version="1.0" encoding="utf-8" standalone="yes"?>';    
  2. $xml = "<response>        
  3.             <code>  
  4.                 0  
  5.             </code>     
  6.         </response>";    
  7. echo $xml;  
但是還可以做一下優(yōu)化:

  1. $xml = '<?xml version="1.0" encoding="utf-8" standalone="yes"?>';    
  2. $xml = "<response>        
  3.             <code>  
  4.                 0  
  5.             </code>     
  6.         </response>";    
  7. header("content-type: text/xml");    
  8. echo $xml;  

注意header行. 該行告知瀏覽器發(fā)送的是xml類(lèi)型的內容. 所以瀏覽器能正確的處理. 很多的javascript庫也依賴(lài)頭信息。

9. 為mysql連接設置正確的字符編碼

曾經(jīng)遇到過(guò)在mysql表中設置了unicode/utf-8編碼, phpadmin也能正確顯示, 但當你獲取內容并在頁(yè)面輸出的時(shí)候,會(huì )出現亂碼. 這里的問(wèn)題出在mysql連接的字符編碼.

  1. <? //Attempt to connect to database    
  2.  $c = mysqli_connect($this->host , $this->username, $this->password);    //主機名,用戶(hù)名和密碼是作為三個(gè)私有屬性   
  3.  //Check connection validity    
  4.  if (!$c)   
  5.  {    
  6.      die ("Could not connect to the database host: <br />". mysqli_connect_error());    
  7.  }      
  8.  //Set the character set of the connection    
  9.  if(!mysqli_set_charset ( $c , 'UTF8' ))    
  10.  {    
  11.      die('mysqli_set_charset() failed');    
  12.  }   
  13.  //一旦連接數據庫, 最好設置連接的 characterset. 你的應用如果要支持多語(yǔ)言, 這么做是必須的.  
  14.  ?>  

10. 使用 htmlentities 設置正確的編碼選項

php5.4前, 字符的默認編碼是ISO-8859-1, 不能直接輸出如à a等.,

  1. <?  
  2.   1 $value = htmlentities($this->value , ENT_QUOTES , CHARSET);  
  3.   ?>  
php5.4以后, 默認編碼為UTF-8, 這將解決很多問(wèn)題. 但如果你的應用是多語(yǔ)言的, 仍然要留意編碼問(wèn)題,.

11. 不要在應用中使用gzip壓縮輸出, 讓apache處理

考慮過(guò)使用 ob_gzhandler 嗎? 不要那樣做. 毫無(wú)意義. php只應用來(lái)編寫(xiě)應用. 不應操心服務(wù)器和瀏覽器的數據傳輸優(yōu)化問(wèn)題.使用apache的mod_gzip/mod_deflate 模塊壓縮內容。

12. 使用json_encode輸出動(dòng)態(tài)javascript內容

常會(huì )用php輸出動(dòng)態(tài)javascript內容:
  1. <?php  
  2.   $images = array( 'myself.png' , 'friends.png' , 'colleagues.png' );    
  3.   $js_code = '';       
  4.     foreach($images as $image)    
  5.     {    
  6.     $js_code .= "'$image' ,";    
  7.     }      
  8.     $js_code = 'var images = [' . $js_code . ']; ';       
  9.     echo $js_code;    
  10.     //Output is var images = ['myself.png' ,'friends.png' ,'colleagues.png' ,];   
  11.   ?>  

更聰明的做法, 使用 json_encode:

  1. <?php  
  2.   $images = array( 'myself.png' , 'friends.png' , 'colleagues.png' );        
  3.   $js_code = 'var images = ' . json_encode($images);       
  4.   echo $js_code;       
  5.   //Output is : var images = ["myself.png","friends.png","colleagues.png"]   
  6.   ?>  

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
PHP通過(guò)iconv將字符串從GBK轉換為UTF8字符集
細說(shuō)PHP中strlen和mb_strlen的區別
trackback的原理與實(shí)現 trackback掃盲
計算機文件編碼問(wèn)題,我總算搞清楚了
PHP實(shí)現JS顏文字編碼解碼過(guò)程
PHP 操作 XML 文件 - 讀取、顯示
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久