Home >Backend Development >PHP Tutorial >PHP code optimization and summary of PHP related issues
1. When passing an array in a function, using return is more efficient than using global. For example,
$detail=explode("|",$usertemp);
return $detail;
}
$login=userloginfo($userdb);
than
function userloginfo($usertemp){
global $detail;$detail=explode("|",$usertemp);
}
userloginfo($userdb) ;
Be 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 This code segment is more efficient than
$pre_urlarray=explode('/',$HTTP_SERVER_VARS['HTTP_REFERER']);
$pre_url=array_pop($pre_urlarray);
3. When judging in a loop, use numerical judgment Identity ratio is equal to efficient
For example
if($a==$b)$c=$a;than
if($a===$b)$c =$a;
Efficient
4, MySQL try to use where in when querying and use limit less
limit to check the first few records of many records, the speed is very fast, but the query of the last few records will be slow
use in. In the continuous query Continuous recording is very fast. Discontinuous recording will be a little slower for the first time, but it will be faster after that!
5. The stability of NT server data operation is not as stable as unix/linux
6. Try to use ob_start( before outputting ); 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 when making judgments. ) When negating, try to use if(empty($a)), because this way the program runs faster
8, when using unequal time!= is equivalent to <>
9, personal experience is to use $a=" 11111111111111"; is as efficient as $a='11111111111111';. It is not very different as the book says
10. Using standardized SQL statements will be beneficial to MySQL parsing
11. Using
if($ online){
$online1=$online;setcookie('online1',$online,$cookietime,$ckpath,$ckdomain,$secure);
}
COOKIE will take effect immediately
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);
than
file($filename);
no matter Excellent in both speed and stability
13, truncation string optimization function (can avoid the appearance of ? characters)
function substrs($content,$length) {
if(strlen($content)>$length){$num=0;
$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
{ //strtolower() This function will produce garbled characters on some servers!
if (strrpos($regname,chr($asc))!==false){
$error="For To avoid user name confusion, uppercase letters are prohibited in user names, please use lowercase letters";$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);
$filedb=explode("
//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!