ホームページ >バックエンド開発 >PHPチュートリアル >PHP の動作効率を向上させる方法についての詳細なディスカッション_PHP チュートリアル
が PHP の動作効率を向上させることは誰もが知っています 1. 関数で配列
を渡す場合、グローバル
を使用するよりも return を使用する方が効率的です
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute">urlarray</span><span>=</span><span class="attribute-value">explode</span><span>('/',$HTTP_<br>SERVER_VARS['REQUEST_URI']); </span></span></li> <li> <span>$</span><span class="attribute">urlcount</span><span>=count($urlarray);unset<br>($urlarray[$urlcount-1]); </span> </li> <li class="alt"> <span>$</span><span class="attribute">ofstarurl</span><span>=</span><span class="attribute-value">'http://'</span><span>.<br>$HTTP_SERVER_VARS['HTTP_HOST'].<br>implode('/',$urlarray); </span> </li> </ol>
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute">pre_urlarray</span><span>=</span><span class="attribute-value">explode</span><span>('/',$HTTP_SERVER_VARS['HTTP_REFERER']); </span></span></li> <li> <span>$</span><span class="attribute">pre_url</span><span>=</span><span class="attribute-value">array_pop</span><span>($pre_urlarray); </span> </li> </ol>より効率的です
<ol class="dp-xml"><li class="alt"><span><span>$</span><span class="attribute">a</span><span>=</span><span class="attribute-value">2</span><span>;$</span><span class="attribute">b</span><span>=</span><span class="attribute-value">2</span><span>; </span></span></li></ol>PHPの動作効率を向上させます3, ループ内で判定する場合、数値判定は同一比を使用して効率的です
<ol class="dp-xml"><li class="alt"><span><span>if($</span><span class="attribute">a</span><span>==$b)$</span><span class="attribute">c</span><span>=$a; </span></span></li></ol>
<ol class="dp-xml"><li class="alt"><span><span>if($</span><span class="attribute">a</span><span>===$b)$</span><span class="attribute">c</span><span>=$a; </span></span></li></ol>
<ol class="dp-xml"> <li class="alt"><span><span>if($online){ </span></span></li> <li> <span>$</span><span class="attribute">online1</span><span>=$online; </span> </li> <li class="alt"><span>setcookie('online1',$online,<br>$cookietime,$ckpath,$ckdomain,$secure); </span></li> <li><span>} </span></li> </ol>
効率的
PHPの動作効率を向上させる 4、
mysqlクエリwhere inを使用し、制限を少なくしてください
limitを使用して、複数のレコードの最初の数レコードをチェックしますレコードの場合、速度は非常に高速ですが、上位数レコードのクエリは遅くなります
で使用します。連続レコードをクエリする場合は非常に高速で、非連続レコードは非常に高速です。少し遅くなりますが、その後は速くなります!
PHPの動作効率の向上 5,NTサーバーのデータ動作の安定性はunix/linuxほど安定していません
PHPの動作効率の向上 6,出力前にお試しくださいob_start(); を使用して出力を高速化します。unlix サーバーの場合、ob_start('ob_gzhandler'); を使用すると、PHP の動作効率が向上します 7,
判断 負の場合は if($a==his value) を使用し、負の場合は if(empty($a)) を使用してみてください。この方法の方がプログラムの実行が速くなりますPHP の実行効率を向上させる 8,
不等時間を使用する != 効率は < と同等です。大きな違いがあります
PHP の動作効率を向上させる 10,
標準化された SQL ステートメントを使用すると MySQL の解析に有益ですPHP の動作効率を向上させる 11
,有効にするには<ol class="dp-xml"><li class="alt"><span><span>if($online) </span></span></li><li><span>setcookie('online1',$online,<br />$cookietime,$ckpath,$ckdomain,$secure); </span></li></ol>COOKIEが間もなく利用可能になります
Use
<ol class="dp-xml"><li class="alt"><span><span>$</span><span class="attribute">handle</span><span>=</span><span class="attribute-value">fopen</span><span>($filename,wb); </span></span></li><li><span>flock($handle,LOCK_SH); </span></li><li class="alt"><span>$</span><span class="attribute">filedata</span><span>=</span><span class="attribute-value">fread</span><span>($handle,<br />filesize($filename)); </span></li><li><span>fclose($handle); </span></li></ol>
COOKIEを有効にするには再度更新する必要があります
PHPの実行効率を向上させます12、
Use
<ol class="dp-xml"><li class="alt"><span><span>file($filename); </span></span></li></ol>より
<ol class="dp-xml"><li class="alt"><span><span>ifunction substrs($content,$length) { </span></span></li><li><span>if(strlen($content)</span><span class="tag">><span>$length){ </span><li class="alt"> <span>$</span><span class="attribute">num</span><span>=</span><span class="attribute-value">0</span><span>; </span> </li> <li> <span>for($</span><span class="attribute">i</span><span>=</span><span class="attribute-value">0</span><span>;$i</span><span class="tag"><</span><span>$length-3;$i++) { </span></li><li class="alt"><span>if(ord($content[$i])</span><span class="tag">></span><span>127)$num++; </span> </li> <li><span>} </span></li> <li class="alt"> <span>$num%</span><span class="attribute">2</span><span>==1 ? $</span><span class="attribute">content</span><span>=</span><span class="attribute-value">substr</span><span>(<br>$content,0,$length-4):$</span><span class="attribute">content<br></span><span>=</span><span class="attribute-value">substr</span><span>($content,0,$length-3); </span> </li> <li> <span>$</span><span class="attribute">content.</span><span>=</span><span class="attribute-value">' ...'</span><span>; </span> </li> <li class="alt"><span>} </span></li> <li><span>return $content; </span></li> <li class="alt"><span>} </span></li> 問題なし 速度、安定性ともに優れています<p></p> <p>PHPの動作効率向上 13、文字列の切り捨て最適化機能(?文字の出現を回避可能) <strong></strong></p> <p></p> <pre class="brush:php;toolbar:false"><ol class="dp-xml"><li class="alt"><span><span>$newarray[1]=substrs($newarray[1],25); </span></span></li></ol>
向け例
<ol class="dp-xml"> <li class="alt"><span><span>for ($</span><span class="attribute">asc</span><span>=</span><span class="attribute-value">65</span><span>;$asc</span><span class="tag"><</span><span>=90;$asc++) </span></span></li><li><span>{ //strtolower() 此函数在一些服务<br />器会产生乱码! </span></li><li class="alt"><span>if (strrpos($regname,chr($asc))!==false) </span></li><li><span>{ </span></li><li class="alt"><span>$</span><span class="attribute">error</span><span>=</span><span class="attribute-value">"为了避免用户名混乱,用户名<br />中禁止使用大写字母,请使用小写字母"</span><span>; </span></li><li><span>$</span><span class="attribute">reg_check</span><span>=</span><span class="attribute-value">0</span><span>; </span></li><li class="alt"><span>} </span></li><li><span>} </span></li></ol>
PHP の動作効率を向上させる 14、プログラム内のシールドケース
PHP の実行効率を 15 向上させ、file() を使用せず、fget() を使用しません (不安定または遅い)。配列関数を例にとってみましょう<ol class="dp-xml"><li class="alt"><span><span>function openfile($filename,$</span><span class="attribute">method</span><span>=</span><span class="attribute-value">"rb"</span><span>) </span></span></li><li><span>{ </span></li><li class="alt"><span>$</span><span class="attribute">handle</span><span>=@fopen($filename,$method); </span></li><li><span>@flock($handle,LOCK_SH); </span></li><li class="alt"><span>@$</span><span class="attribute">filedata</span><span>=</span><span class="attribute-value">fread</span><span>($handle,filesize<br />($filename)); </span></li><li><span>@fclose($handle); </span></li><li class="alt"><span>$</span><span class="attribute">filedata</span><span>=</span><span class="attribute-value">str_replace</span><span>("n","<br />n</span><span class="tag"><</span><span class="tag-name">ofstar:</span><span class="tag">></span><span>",$filedata); </span></span></li> <li> <span>$</span><span class="attribute">filedb</span><span>=</span><span class="attribute-value">explode</span><span>("</span><span class="tag"><</span><span class="tag-name">ofstar:</span><span class="tag">></span><span>",$filedata); </span> </li> <li class="alt"><span>//array_pop($filedb); </span></li> <li> <span>$</span><span class="attribute">count</span><span class="attribute-value">count</span><span>=count($filedb); </span> </li> <li class="alt"><span>if($filedb[$count-1]==''){unset<br>($filedb[$count-1]);} </span></li> <li><span>return $filedb; </span></li> <li class="alt"><span>} </span></li> </ol>
この関数はコードが多くなりますが、速度が向上し、安定性の面で PHP の動作効率を向上させるのに大きな利点があります!
http://www.bkjia.com/PHPjc/446216.html
www.bkjia.comtrue
http://www.bkjia.com/PHPjc/446216.html
技術記事
ご存知のとおり、PHP の動作効率を向上させるには、関数内で配列を渡すときに return を使用する方が、たとえば、global を使用するよりも効率的です。