>백엔드 개발 >PHP 튜토리얼 >PHP 코드 최적화 및 PHP 관련 문제 요약

PHP 코드 최적화 및 PHP 관련 문제 요약

高洛峰
高洛峰원래의
2016-12-02 10:34:551140검색

1. 함수에 배열을 전달할 때
전역을 사용하는 것보다 return을 사용하는 것이 더 효율적입니다.
예를 들어


function userloginfo($usertemp){
$ Detail=explode( "|",$usertemp);
return $detail;
}
$login=userloginfo($userdb);

보다

function userloginfo ($usertemp) {
전역 $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);

이 코드는 🎜>

효율적입니다


3. 루프에서 판단할 때 동일성 비율을 사용하면 수치 판단이 더 효율적입니다.

$a=2;$b=2;

예를 들어

if($a==$b)$c=$a;

than
if($a=== $b)$c=$a;
효율적

4, mysql을 쿼리할 때 where in을 사용하고 Limit less를 사용해 보세요.
limit는 처음 몇 개의 레코드를 확인하는 데 매우 빠르지만, 상위 몇개 레코드를 쿼리하면 속도가 느려집니다.
에서 사용하세요. 연속 레코드를 쿼리할 때 처음에는 속도가 조금 느려지지만 그 이후에는 빨라집니다!

5. NT 서버 데이터 작업의 안정성은 unix/linux만큼 안정적이지 않습니다

6. ob_start()를 출력하기 전에 최대한 사용하면 NT 또는 Linux에 적합합니다. nuli/linux.unlix 서버에 ob_start('ob_gzhandler')를 사용하면 출력 효율성이 더 높아집니다.

7. if($ a==his value)를 사용해 보세요. $a)) 부정할 때, 이렇게 하면 프로그램이 더 빨리 실행되기 때문에

8, 동일하지 않은 시간!=을 사용하는 것은 <>

9와 같습니다. $a="11111111111111";은 $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,

$ 사용 handler=fopen($filename,wb);

flock($handle,LOCK_SH);

$filedata=fread($handle,filesize($filename));

fclose($handle);



file($filename);

보다 속도와 안정성 모두 우수합니다.

13, 문자 잘림 문자열 최적화 기능(? 문자)

함수 substrs($content,$length) {

if(strlen($content)>$length){

$num=0

for($i= 0;$i<$length-3;$i++) {

if(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<=90;$asc++)

{ //strtolower() 이 함수는 일부 서버에서 잘못된 코드를 생성합니다 !

if ( strrpos($regname,chr($asc))!==false)

{

$error="사용자 이름의 혼동을 피하기 위해 사용자 이름에는 대문자를 사용할 수 없습니다. 소문자를 사용하십시오. 문자";

$reg_check=0;
}
}




15, file()을 사용하지 말고 fget()도 사용하지 마세요.( 불안정 또는 느림) 배열 함수를 사용합니다.

function openfile($filename,$method="rb")

{

$handle=@fopen($filename,$method);
@ 무리($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으로 문의하세요.