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 手机归属地查询 api
Feb 08 PHP
WordPress判断用户是否登录的代码
Mar 17 PHP
php开启安全模式后禁用的函数集合
Jun 26 PHP
深入Apache与Nginx的优缺点比较详解
Jun 17 PHP
php防注入及开发安全详细解析
Aug 09 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
PHP几个实用自定义函数小结
Jan 25 PHP
Yii2如何批量添加数据
May 17 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 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
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
基于jQuery的日期选择控件
2009/10/27 Javascript
javascript 函数速查表
2010/02/07 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
JavaScript中的比较操作符&gt;、=、
2014/12/31 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
浅谈js中字符和数组一些基本算法题
2016/08/15 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
Python基于Tkinter实现的记事本实例
2015/06/17 Python
python实现自动重启本程序的方法
2015/07/09 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
redis之django-redis的简单缓存使用
2018/06/07 Python
Python整数对象实现原理详解
2019/07/01 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
财务工作者先进事迹材料
2014/01/17 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
无刑事犯罪记录证明
2014/09/18 职场文书
2014教师党员自我评议(5篇)
2014/09/20 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书