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

PHP コードの最適化と PHP 関連の問題の概要

高洛峰
高洛峰オリジナル
2016-12-02 10:34:551140ブラウズ

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 を使用し、limitless

limit を使用して、多くのレコードの最初の数レコードをチェックしてみてください。速度は非常に高速ですが、クエリは最後の数レコードは遅くなります
。 連続的にクエリを実行する場合、連続記録は最初は少し遅くなりますが、その後は速くなります

5.データ操作は 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;

, %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{ //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;
}

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




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