php教程 php手册 ------->php代码优化及php相关问题总结

------->php代码优化及php相关问题总结

Jun 21, 2016 am 09:15 AM
content online quot

问题|优化

1,在函数中,传递数组时
使用 return 比使用 global 要高效
比如


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



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



要高效

2,(这个代码用于得到程序目录对应的网址,推荐使用)

$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;

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

4,mysql 查询时尽量使用where in 少用 limit
limit查多记录的前几条, 速度很快, 但是查询最面几条就会慢
使用in .在查询连续性记录,非常快, 非连续性记录第一次运行会稍微慢一点,但是之后将比较快!

5,NT服务器数据操作稳定性不及unix/linux

6,输出前使用尽量使用 ob_start(); 可以加快输出速度,适用NT或nuli/linux,对unlix类服务器 如果使用 ob_start('ob_gzhandler');输出效率将更高

7,判断的时候尽量使用if($a==他的值) 否定的时候尽量使用if(empty($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,使用

$handle=fopen($filename,wb);
flock($handle,LOCK_SH);
$filedata=fread($handle,filesize($filename));
fclose($handle);



file($filename);

无论在速度还是稳定上都要优秀

13,截断字符串优化函数(可避免?字符出现)

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{ //strtolower() 此函数在一些服务器会产生乱码!
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으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

CSS 콘텐츠 속성 설명: 콘텐츠, 카운터 및 따옴표 CSS 콘텐츠 속성 설명: 콘텐츠, 카운터 및 따옴표 Oct 21, 2023 am 10:16 AM

CSS 콘텐츠 속성 설명: 콘텐츠, 카운터 및 따옴표

Microsoft AI CEO는 개방형 웹 콘텐츠를 사용하여 AI 모델을 교육하는 것이 잘못된 것이 아니라고 말합니다. Microsoft AI CEO는 개방형 웹 콘텐츠를 사용하여 AI 모델을 교육하는 것이 잘못된 것이 아니라고 말합니다. Jun 30, 2024 pm 10:59 PM

Microsoft AI CEO는 개방형 웹 콘텐츠를 사용하여 AI 모델을 교육하는 것이 잘못된 것이 아니라고 말합니다.

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 Jun 13, 2016 am 10:15 AM

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题

为什么小弟我在php上写的这个代码,在浏览器上什么都不显示 为什么小弟我在php上写的这个代码,在浏览器上什么都不显示 Jun 13, 2016 am 10:24 AM

为什么小弟我在php上写的这个代码,在浏览器上什么都不显示

Valve는 Steam Deck 게이머에게 치트 방지 기능을 제공한 후 GTA V 환불을 발행합니다. Valve는 Steam Deck 게이머에게 치트 방지 기능을 제공한 후 GTA V 환불을 발행합니다. Sep 20, 2024 pm 06:18 PM

Valve는 Steam Deck 게이머에게 치트 방지 기능을 제공한 후 GTA V 환불을 발행합니다.

图片消失怎么解决 图片消失怎么解决 Apr 07, 2024 pm 03:02 PM

图片消失怎么解决

图片消失怎么解决 图片消失怎么解决 Jun 13, 2016 am 10:09 AM

图片消失怎么解决

See all articles