php 运行效率总结(提示程序速度)


Posted in PHP onNovember 26, 2009

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;
}
//这个函数虽然代码比较多,不过在速度和稳定性上优势很大!

PHP 相关文章推荐
PHP中利用substr_replace将指定两位置之间的字符替换为*号
Jan 27 PHP
基于Zend的Config机制的应用分析
May 02 PHP
使用array mutisort 实现按某字段对数据排序
Jun 18 PHP
PHP循环结构实例讲解
Feb 10 PHP
ThinkPHP之R方法实例详解
Jun 20 PHP
PHP中的traits实现代码复用使用实例
May 13 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
php metaphone()函数的定义和用法
May 15 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 PHP
Ajax+PHP 边学边练 之二 实例
Nov 24 #PHP
MYSQL 小技巧 -- LAST_INSERT_ID
Nov 24 #PHP
php Memcache 中实现消息队列
Nov 24 #PHP
phplock(php进程锁) v1.0 beta1
Nov 24 #PHP
PHP 进程锁定问题分析研究
Nov 24 #PHP
PHP 递归效率分析
Nov 24 #PHP
PHP 单引号与双引号的区别
Nov 24 #PHP
You might like
php制作动态随机验证码
2015/02/12 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
js 分栏效果实现代码
2009/08/29 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
理解javascript正则表达式
2016/03/08 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
第七篇Bootstrap表单布局实例代码详解(三种表单布局)
2016/06/21 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
what is the difference between ext2 and ext3
2013/11/03 面试题
青春寄语大全
2014/04/09 职场文书
学生评语大全
2014/04/18 职场文书
签约仪式策划方案
2014/06/02 职场文书
施工安全汇报材料
2014/08/17 职场文书
2015年行政部工作总结
2015/04/28 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android