Home  >  Article  >  Backend Development  >  Summary of PHP code optimization and PHP related issues_PHP tutorial

Summary of PHP code optimization and PHP related issues_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 16:08:25732browse

1. When passing an array in a function,
using return is more efficient than using global
For example,


function userloginfo($usertemp){
$detail=explode( "|",$usertemp);
return $detail;
}
$login=userloginfo($userdb);

than

function userloginfo($usertemp) {
global $detail;
$detail=explode("|",$usertemp);
}
userloginfo($userdb);

Required Efficient

2, (This code is used to get the URL corresponding to the program directory, recommended)

$urlarray=explode('/',$HTTP_SERVER_VARS['REQUEST_URI']);
$urlcount=count($urlarray);unset($urlarray[$urlcount-1]);
$ofstarurl='http://'.$HTTP_SERVER_VARS['HTTP_HOST'].implode('/',$ urlarray);

This code is better than 🎜>

Be efficient


3. When judging in a loop, use identity ratio to make numerical judgment more efficient

$a=2;$b=2;

For example

if($a==$b)$c=$a;

than
if($a===$b)$c=$a;
efficient

4, When querying mysql, try to use where in and use limit less.
limit is very fast to check the first few records, but it will be slow to query the last few records.
Use in. When querying continuous records, it is very fast. The first run of discontinuous recording will be a little slower, but it will be faster after that!

5. The stability of NT server data operation is not as stable as unix/linux

6. Use it as much as possible before outputting ob_start(); can speed up the output, suitable for NT or nuli/linux. If you use ob_start('ob_gzhandler') for unlix servers; the output efficiency will be higher

7. Try to use if($ a==his value) Try to use if(empty($a)) when negating, because this way the program runs faster

8, using unequal time!= is equivalent to <>

9. From personal experience, the efficiency of using $a="11111111111111"; is equivalent to $a='11111111111111';. It is not as different as the book says

10. Use standardized SQL statement, it will be helpful for MySQL parsing

11, use

if($online){

$online1=$online;

setcookie('online1',$online, $cookietime,$ckpath,$ckdomain,$secure);

}




COOKIE will take effect immediately

Use

if($online)

setcookie('online1',$online,$cookietime,$ckpath,$ckdomain,$secure);


COOKIE needs to be refreshed again to take effect

12, Use

$handle=fopen($filename,wb);

flock($handle,LOCK_SH);

$filedata=fread($handle,filesize($filename));

fclose($handle);


is better than

file($filename);

in both speed and stability

13, truncate characters String optimization function (can avoid the occurrence of ? characters)

function substrs($content,$length) {

if(strlen($content)>$length){

$num=0;

for($i=0;$i<$length-3;$i++) {

if(ord($content[$i])>127)$num++;
}
$num%2==1 ? $content=substr($content,0,$length-4):$content=substr($content,0,$length-3);
$content.=' .. .';
}
return $content;
}



For example $newarray[1]=substrs($newarray[1],25);

14, case shielding in the program

for ($asc=65;$asc<=90;$asc++)

{ //strtolower() This function will generate garbled code on some servers !

if (strrpos($regname,chr($asc))!==false)

{

$error="In order to avoid confusion in usernames, uppercase letters are prohibited in usernames. Please use lowercase letters. Letter";
$reg_check=0;
}
}



15, do not use file(); and do not use fget();( Unstable or slow) Take an array function

function openfile($filename,$method="rb")

{
$handle=@fopen($filename,$method);

@flock($handle,LOCK_SH);

@$filedata=fread($handle,filesize($filename));
@fclose($handle);
$filedata=str_replace("n ","n",$filedata);
$filedb=explode("",$filedata);
//array_pop($filedb);
$count=count($filedb);
if($filedb[$count-1]==''){unset($filedb[$count-1]);}
return $filedb;
}
//Although this function has a lot of code, it has great advantages in speed and stability!



Write this first

The above is a completely personal summary ,,However, the correctness has been tested repeatedly. If any friends have doubts, please test first and then discuss, thank you!



http://www.bkjia.com/PHPjc/314864.html

www.bkjia.com

http: //www.bkjia.com/PHPjc/314864.htmlTechArticle1. In a function, using return when passing an array is more efficient than using global. For example, function userloginfo($usertemp){ $detail=explode("|",$usertemp); return $detail; } $login=userloginfo...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn