喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
 24  1/3  1  2  3  > 
     
标题: 看到这篇东东,觉得不错.所以转来------->php代码优化及php相关问题总结 (  
 
googniao
中级会员
Rank: 3Rank: 3
中级会员



UID 18385
精华 1
积分 371
帖子 344
金钱 361 喜悦币
威望 10
人脉 0
阅读权限 30
注册 2003-2-16
状态 离线
看到这篇东东,觉得不错.所以转来------->php代码优化及php相关问题总结 (

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;$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);
  @flock($handle,LOCK_SH);
  @$filedata=fread($handle,filesize($filename));
  @fclose($handle);
  $filedata=str_replace("\n","\n<ofstar:>",$filedata);
  $filedb=explode("<ofstar:>",$filedata);
  //array_pop($filedb);
  $count=count($filedb);
  if($filedb[$count-1]==''){unset($filedb[$count-1]);}
  return $filedb;
}
//这个函数虽然代码比较多,不过在速度和稳定性上优势很大!
2005-1-13 11:33 PM#1
查看资料  访问主页  Blog  发短消息  顶部
 
kuanan (kuanan)
高级会员
Rank: 4
资深会员



UID 25343
精华 0
积分 617
帖子 611
金钱 617 喜悦币
威望 0
人脉 0
阅读权限 50
注册 2003-12-20
来自 山东淄博
状态 离线
[推荐阅读] [广告]我公司的短信游戏:qq游戏城-大唐西游
xiexie,
2005-1-13 11:42 PM#2
查看资料  发短消息  QQ . .   顶部
 
hcbsdy (hcbsdy)
中级会员
Rank: 3Rank: 3
中级会员



UID 21000
精华 0
积分 226
帖子 210
金钱 226 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2003-6-22
状态 离线
[推荐阅读] 在win下可以上传文件但在linux下就不行了。
很适用
2005-1-22 05:09 PM#3
查看资料  发短消息  QQ . .   顶部
 
lkfnt (lkfnt)
新手上路
Rank: 1
初级会员



UID 58953
精华 0
积分 1
帖子 1
金钱 1 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-12-3
状态 离线
[推荐阅读] 发一道考题给大家,喜欢研究学习的进!
ok
2005-1-22 06:13 PM#4
查看资料  发短消息  顶部
 
shishirui (shishirui)
中级会员
Rank: 3Rank: 3
中级会员



UID 24551
精华 0
积分 325
帖子 325
金钱 325 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2003-11-12
状态 离线
[推荐阅读] 发一道考题给大家,喜欢研究学习的进!
不错!
2005-1-22 06:45 PM#5
查看资料  发短消息  顶部
 
MicroChen (MicroChen)
注册会员
Rank: 2
中级会员



UID 31078
精华 0
积分 150
帖子 150
金钱 150 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2004-9-12
状态 离线
[推荐阅读] 这个js问题,我问下,那边没什么人啊
2005-1-24 03:15 AM#6
查看资料  发短消息  顶部
 
lalaqi
新手上路
Rank: 1
初级会员



UID 31210
精华 0
积分 35
帖子 27
金钱 35 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2004-9-16
来自 广州
状态 离线
[推荐阅读] 欢迎光临 胶东半岛
hehe
2005-1-29 12:37 PM#7
查看资料  访问主页  发短消息  QQ . .   顶部
 
nesta2001zhang (nesta2001zhang)
论坛元老
Rank: 8Rank: 8
超级管理员


UID 29682
精华 0
积分 6575
帖子 2784
金钱 6575 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2004-6-28
来自 地球
状态 离线
[推荐阅读] 个人觉得村子的叶子美工方面需要加强
恩  不错不错 打包拿回家



<a href="http://www.phpwap.cn/">涣熊的收藏夹</a>
2005-1-29 01:01 PM#8
查看资料  访问主页  Blog  发短消息  顶部
 
leo_han (臭p孩儿)
金牌会员
Rank: 6Rank: 6
傻眼博士


UID 63903
精华 0
积分 1074
帖子 1177
金钱 1074 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2005-4-1
来自 辽宁--大连
状态 离线
[推荐阅读] 个人认为村子的叶子美工也该加强
顶~~



士可杀,不可辱,皮鞋上不能有土
头可断,血可流,皮鞋不能不打油
有事您说话~~
blog:我是无敌凹凸曼
2005-7-20 10:45 AM#9
查看资料  访问主页  Blog  发短消息  QQ . .   顶部
 
孤枕难眠 (孤枕难眠)
中级会员
Rank: 3Rank: 3
中级会员



UID 29905
精华 0
积分 358
帖子 366
金钱 358 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2004-7-7
来自 合肥
状态 离线
[推荐阅读] [推荐]超级性感十一式
差别有一顿饭的功夫吗?
2005-7-20 11:10 AM#10
查看资料  发短消息  QQ . .   顶部
 24  1/3  1  2  3  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.027882 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP