ホームページ  >  記事  >  バックエンド開発  >  PHP コードの最適化と PHP 関連の問題の概要_PHP チュートリアル

PHP コードの最適化と PHP 関連の問題の概要_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:08:25737ブラウズ

1. 関数で配列を渡す場合は、global を使用するよりも return を使用する方が効率的です。詳細;
}
$login=userloginfo($userdb);

than

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

userloginfo( $userdb) ;


効率的になる

2, (このコードは、プログラム ディレクトリに対応する URL を取得するために使用されます。推奨)

$urlarray=explode('/',$HTTP_SERVER_VARS['REQUEST_URI']) ;

$urlcount= count($urlarray);unset($urlarray[$urlcount-1]);

$ofstarurl='http://'.$HTTP_SERVER_VARS['HTTP_HOST'].implode('/',$urlarray );

this このコード セグメントは、

$pre_urlarray=explode('/',$HTTP_SERVER_VARS['HTTP_REFERER']);

$pre_url=array_pop($pre_urlarray);

3 よりも効率的です。ループ、数値判断を使用する 同一性比は効率的と等しい

$a=2;$b=2;

例:

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

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

効率的

4、MySQL はクエリ時に where in を使用し、リミットレス

limit を使用して多くのレコードの最初の数レコードをチェックします。速度は非常に高速ですが、クエリは最後の数レコードは遅くなります
。 連続クエリでは、非連続録画は最初は少し遅くなりますが、その後は速くなります

5. NT サーバーのデータ操作は、unix/linux ほど安定していません

6。ob_start('ob_gzhandler を使用する場合、NT または nuli/linux に適しています); を使用してください。 '); 出力効率が高くなります

7. 判定するときは if($a==his value) を使用してみてください。この方法の方がプログラムが高速に実行されるため、否定する場合は if(empty($a)) を使用してください。


8、不等時間!= を使用する場合、<>

9 は $a='11111111111111' と同じくらい効率的です。本に書いてあるとおりです

10. 標準化された SQL ステートメントの使用は MySQL の解析に有益です

11.

if($ online){

$online1=$online;

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

}

COOKIE はすぐに有効になります


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

COOKIE を有効にするには再度更新する必要があります


12、

$handle=fopen($filename ,wb);
flock($handle,LOCK_SH);

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

fclose($handle);

than

file($filename);

関係なく 速度と安定性の両方に優れています

13、切り捨て文字列最適化機能( ? 文字の出現)

function substrs($content,$length) {

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

$num=0;

for($i=0; %2==1 ? $content=substr($content,0,$length-4):$content=substr($content,0,$length-3);

$content.=' ...';

}

return $content ;

}



たとえば、$newarray[1]=substrs($newarray[1],25);

14、プログラム内の大文字と小文字のシールド

for ($asc=65;$asc< ;=90; $asc++)
{ //strto lower() この関数は、一部のサーバーで文字化けを生成します!
if (strrpos($regname,chr($asc))!==false)
{
$error="For ユーザーを避けるため名前の混乱、ユーザー名には大文字は禁止されています。小文字を使用してください。";

$reg_check=0;

}

}

15、file(); および fget() は使用しないでください;(不安定または遅い) 配列関数を使用します

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;

}
//この関数には多くのコードがありますが、速度と安定性の点で大きな利点があります!



まずこれは書きました
上記は完全に個人的な要約ですが、正確さは繰り返しテストされています。疑問がある場合は、まずテストしてから話し合ってください。ありがとうございます!





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

www.bkjia.com

tru​​e


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

技術記事

1. 関数では、配列を渡すときに return を使用する方が、global を使用するよりも効率的です。ユーザーログ情報...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。