PHP code optimization and summary of PHP related issues

高洛峰
Release: 2023-03-02 20:42:02
Original
1053 people have browsed it

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) ;

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

$a=2;$b=2;

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

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);


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

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

{ //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);

$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!



Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!