初學(xué)PHP,請問怎么才能寫出安全,高效的代碼?
熱心網(wǎng)友
1,在函數(shù)中,傳遞數(shù)組時使用 return 比使用 global 要高效比如function userloginfo($usertemp){$detail=explode("|",$usertemp);return $detail;}$login=userloginfo($userdb);比function userloginfo($usertemp){global $detail;$detail=explode("|",$usertemp);}userloginfo($userdb);要高效2,(這個代碼用于得到程序目錄對應(yīng)的網(wǎng)址,推薦使用)$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,在循環(huán)中判斷時,數(shù)值判斷使用恒等要比等于高效$a=2;$b=2;比如if($a==$b)$c=$a;比if($a===$b)$c=$a;高效4,mysql 查詢時盡量使用where in 少用 limit limit查多記錄的前幾條, 速度很快, 但是查詢最面幾條就會慢使用in 。在查詢連續(xù)性記錄,非常快, 非連續(xù)性記錄第一次運行會稍微慢一點,但是之后將比較快!5,NT服務(wù)器數(shù)據(jù)操作穩(wěn)定性不及unix/linux6,輸出前使用盡量使用 ob_start(); 可以加快輸出速度,適用NT或nuli/linux,對unlix類服務(wù)器 如果使用 ob_start('ob_gzhandler');輸出效率將更高7,判斷的時候盡量使用if($a==他的值) 否定的時候盡量使用if(empty($a)),因為這樣程序運行更快速8,使用不等時 != 與 效率相當(dāng)9,個人經(jīng)驗得 使用 $a="11111111111111"; 的效率和 $a='11111111111111'; 相當(dāng)。并不象書本說的相差很大10,使用規(guī)范的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);比file($filename);無論在速度還是穩(wěn)定上都要優(yōu)秀13,截斷字符串優(yōu)化函數(shù)(可避免?字符出現(xiàn))function substrs($content,$length) {if(strlen($content)$length){$num=0;for($i=0;$i127)$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",$filedata);$filedb=explode("",$filedata);//array_pop($filedb);$count=count($filedb);if($filedb[$count-1]==''){unset($filedb[$count-1]);}return $filedb;。
熱心網(wǎng)友
沒有最安全的,只有寫過之后再測試,或者用專門的掃描工具試試看了,不行,再改。
熱心網(wǎng)友
隨便只要你還記得就行。
熱心網(wǎng)友
個人經(jīng)驗得 使用 $a="11111111111111"; 的效率和 $a='11111111111111'; 相當(dāng).并不象書本說的相差很大
熱心網(wǎng)友
多練習(xí),多努力,沒有其它靈丹妙藥
熱心網(wǎng)友
先提示一個,把那些諸如 p?id=123 的bugs解決掉否則用戶寫一個 p?id=123 OR 1=1就能搞定你的系統(tǒng)了
熱心網(wǎng)友
使用瑞星殺毒軟件,啟動主程序,進(jìn)入工具,進(jìn)入系統(tǒng)漏洞掃描,掃描后按程序提示下載修補(bǔ)漏洞即可。