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 相关文章推荐
建立文件交换功能的脚本(二)
Oct 09 PHP
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
php截取后台登陆密码的代码
May 05 PHP
php生成略缩图代码
Jul 16 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
php操作MongoDB类实例
Jun 17 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
Jan 07 PHP
PHP常见数组函数用法小结
Mar 21 PHP
php微信开发之上传临时素材
Jun 24 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PDO::errorInfo讲解
Jan 28 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
Oct 12 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连接MYSQL成功与否的代码
2013/08/16 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
JavaScript中的其他对象
2008/01/16 Javascript
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
Vue.use源码分析
2017/04/22 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
Python中matplotlib中文乱码解决办法
2017/05/12 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
pygame实现成语填空游戏
2019/10/29 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
Html5游戏开发之乒乓Ping Pong游戏示例(二)
2013/01/21 HTML / CSS
塔吉特百货公司官网:Target
2017/04/27 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
应聘医药代表职位求职信
2013/10/21 职场文书
七年级地理教学反思
2014/01/26 职场文书
2014国培学习感言
2014/03/05 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
年终总结会议主持词
2014/03/17 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
管理建议书范文
2014/05/13 职场文书
课外活动总结范文
2014/07/09 职场文书
银行贷款委托书范本
2014/10/11 职场文书
2015年科普工作总结
2015/07/23 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS