PHP code optimization and PHP related issues summary

Source: Internet
Author: User
Problem | Optimization 1, in a function, when passing an array


using return is more efficient than using global


like
.







function Userloginfo ($usertemp) {


$detail =explode ("|", $usertemp);


return $detail;


}


$login =userloginfo ($USERDB);





than





function Userloginfo ($usertemp) {


Global $detail;


$detail =explode ("|", $usertemp);


}


Userloginfo ($USERDB);











to be efficient





2, (this code is used to get the program directory corresponding to the URL, 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 more than





$pre _urlarray=explode ('/', $HTTP _server_vars[' http_referer ');


$pre _url=array_pop ($pre _urlarray);





to be efficient





3, in the cycle of judgment, the value of the use of identity is equal to the efficient


$a =2; $b = 2;


like
.

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


than


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


Efficient




Use where in less limit when
4,mysql queries


limit check many records of the first few, fast, but the most of the query will be slow


use in. On query continuity records, very fast, discontinuous records first run will be slightly slower, but later will be faster!





5,nt Server data operation stability is less than unix/linux





6, use Ob_start () as far as possible before using the output; Can speed up output speed, suitable for NT or Nuli/linux, Unlix Class Server if Use Ob_start (' Ob_gzhandler '), output efficiency will be higher





7, as far as possible use if ($a = = his value) to use if (empty ($a) when the negation, because the program runs faster





8,!= and <> efficiency are quite
when used unequally




9, personal experience to use $a = "11111111111111"; The efficiency and $a = ' 11111111111111 '; Quite. Not as much as the book says.





10, using the canonical SQL statement, will benefit the MySQL parsing





11, using





if ($online) {


$online 1= $online;


Setcookie (' Online1 ', $online, $cookietime, $ckpath, $ckdomain, $secure);


}











cookies will take effect immediately


Use





if ($online)


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











cookies need to be refreshed again to take effect





12, using





$handle =fopen ($filename, WB);


Flock ($handle, lock_sh);


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


fclose ($handle);





than





file ($filename);





must be excellent in speed and stability





13, truncate the string optimization function (to avoid the occurrence of a character)





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;


}











such as $newarray[1]=substrs ($newarray [1],25);





14, screen case
in the program




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


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


if (Strrpos ($regname, Chr ($ASC))!==false)


{


$error = "In order to avoid user name confusion, the user name is forbidden to use uppercase letters, please use the lowercase letter";


$reg _check=0;


}


}














15, do not use file (), and do not use Fget ();(instability or slow) to take an array of functions





function OpenFile ($filename, $method = "RB")


{


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


@flock ($handle, lock_sh);


@ $filedata =fread ($handle, FileSize ($filename));


@fclose ($handle);


$filedata =str_replace ("", "<ofstar:>", $filedata);


$filedb =explode ("<ofstar:>", $filedata);


//array_pop ($filedb);


$count =count ($filedb);


if ($filedb [$count -1]== ') {unset ($filedb [$count-1]);}


return $filedb;


}


//This function although the code is more, but in the speed and stability advantage is very big!




















Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.