ホームページ >バックエンド開発 >PHPチュートリアル >PHP コードの最適化と PHP 関連の問題の概要
1. 関数で配列を渡す場合は、global を使用するよりも return を使用する方が効率的です。詳細;
}
$login=userloginfo($userdb);
than
function userloginfo($usertemp){
global $detail;
$detail=explode("|",$usertemp);
}
効率的になる
2, (このコードは、プログラム ディレクトリに対応する URL を取得するために使用されます。推奨)
$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 よりも効率的です。ループ、数値判断を使用する 同一性比は効率的と等しい
例:
if($a==$b)$c=$a;than
if($a== =$b)$c =$a;
limit を使用して、多くのレコードの最初の数レコードをチェックしてみてください。速度は非常に高速ですが、クエリは最後の数レコードは遅くなります
。 連続的にクエリを実行する場合、連続記録は最初は少し遅くなりますが、その後は速くなります
5.データ操作は unix/linux ほど安定していません
6。ob_start('ob_gzhandler') を使用すると、NT または nuli/linux に適した、出力を高速化できます。 ; 出力効率が高くなります
9 は $a='11111111111111' と同じくらい効率的です。本には
$online1=$online;
setcookie('online1',$online,$cookietime,$) の使用ckpath,$ckdomain,$secure);}
COOKIE はすぐに有効になります
if($ online)setcookie('online1',$online,$cookietime,$ckpath,$ckdomain,$secure を使用します);
$handle=fopen($filename ,wb);
$filedata=fread($handle) を使用してください,filesize($filename));
fclose($handle);
than
file($filename);
関係ない 速度と安定性の両方に優れています
13、切り捨て文字列最適化機能( ? 文字)
function substrs($content,$length) {
if(strlen($content)>$length){
, %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
$filedb=explode("
$count=count($filedb);
if($filedb[$count-1]== ''){unset($filedb[$ count-1]);} return $filedb;
}