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将会员数据导入到ucenter的代码
Jul 18 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
Jun 10 PHP
php判断linux下程序问题实例
Jul 09 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
分享php多功能图片处理类
May 15 PHP
Yii2.0表关联查询实例分析
Jul 18 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
总结对比php中的多种序列化
Aug 28 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
laravel框架邮箱认证实现方法详解
Nov 22 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
第十节--抽象方法和抽象类
2006/11/16 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
angularjs中$http异步上传Excel文件方法
2018/02/23 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
利用Vue实现简易播放器的完整代码
2020/12/30 Vue.js
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
Python入门教程之if语句的用法
2015/05/14 Python
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
Python解决N阶台阶走法问题的方法分析
2017/12/28 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
python tornado使用流生成图片的例子
2019/11/18 Python
tensorflow使用CNN分析mnist手写体数字数据集
2020/06/17 Python
python 制作网站小说下载器
2021/02/20 Python
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
中文专业毕业生自荐信
2013/10/28 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
运动会搞笑广播稿
2014/10/14 职场文书
数学教师个人总结
2015/02/06 职场文书
个人年终总结范文
2015/03/09 职场文书
Python基本知识点总结
2022/04/07 Python