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中for循环语句的几种变型
Nov 26 PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
php+javascript的日历控件
Nov 19 PHP
用php或asp创建网页桌面快捷方式的代码
Mar 23 PHP
PHP遍历数组的几种方法
Mar 22 PHP
浅析ThinkPHP的模板输出功能
Jul 01 PHP
ThinkPHP开发框架函数详解:C方法
Aug 14 PHP
thinkphp命名空间用法实例详解
Dec 30 PHP
PHP magento后台无法登录问题解决方法
Nov 24 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
详解no input file specified 三种解决方法
Nov 29 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
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
JObj预览一个JS的框架
2008/03/13 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
jquery提示效果实例分析
2014/11/25 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
python实现的解析crontab配置文件代码
2014/06/30 Python
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
python将数组n等分的实例
2019/12/02 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
Python二元算术运算常用方法解析
2020/09/15 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
linux面试题参考答案(5)
2014/09/01 面试题
高中校园广播稿
2014/01/11 职场文书
网络工程师职业规划
2014/02/10 职场文书
出国留学经济担保书
2014/04/01 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
十周年庆典策划方案
2014/06/03 职场文书
领导班子专题民主生活会情况想汇报
2014/09/30 职场文书
大学教师个人总结
2015/02/10 职场文书
小学副班长竞选稿
2015/11/21 职场文书