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 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
php Static关键字实用方法
Jun 04 PHP
php长字符串定义方法
Jul 12 PHP
解析百度搜索结果link?url=参数分析 (全)
Oct 09 PHP
PhpDocumentor 2安装以及生成API文档的方法
May 21 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
Laravel中使用自己编写类库的3种方法
Feb 10 PHP
php微信开发接入
Aug 27 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
PHP判断是否是微信打开还是浏览器打开的方法
Feb 27 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
Feb 26 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数据库代码
2009/03/10 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
图片onload事件触发问题解决方法
2011/07/31 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
前端js实现文件的断点续传 后端PHP文件接收
2016/10/14 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
纯JS实现轮播图
2017/02/22 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
python 将字符串转换成字典dict
2013/03/24 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
煤矿班组长的职责
2013/12/25 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
运动会广播稿400字
2014/01/25 职场文书
高中地理教学反思
2014/01/29 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
万能检讨书2000字
2014/10/17 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
求职自我评价怎么写
2015/03/09 职场文书
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫