ホームページ  >  記事  >  php教程  >  ------->PHP コードの最適化と PHP 関連の問題の概要

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

-->

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

WBOY
WBOYオリジナル
2016-06-21 09:15:35785ブラウズ

問題|最適化

1. 関数で配列を渡す場合、グローバルを使用するよりも return を使用する方が効率的です。たとえば、


function userloginfo($usertemp){
$detail=explode("|",$usertemp);
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 );

この段落 このコードは

$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. NT サーバーのデータ操作の安定性は、unix/linux ほど安定していません

6. 出力する前に ob_start() を使用してください。ob_start(' を使用すると、出力が高速化されます。 unlix サーバーの場合は、出力効率が高くなります

7. 否定する場合は、if ($a==his value) を使用するようにしてください。プログラムがより高速に実行される方法

8、不等値 != を使用する場合は <> と同等です。個人的な経験では $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 (? 文字の出現を回避できます)

function substrs($content,$length) {
if(strlen($content)>$length){
$num=0;
for($i=0; $iif(ord($content[$i])>127)$num++;
}
$num% 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="ユーザー名が紛らわしいことを避けるため、大文字はユーザー名では禁止されているため、小文字を使用してください";
$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 までご連絡ください。