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也可以?成Shell Script
Oct 09 PHP
PHP与SQL注入攻击[二]
Apr 17 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
Yii2 输出xml格式数据的方法
May 03 PHP
Yii2框架可逆加密简单实现方法
Aug 25 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
PHP XML Expat解析器知识点总结
Feb 15 PHP
基于laravel Request的所有方法详解
Sep 29 PHP
PHP7新特性
Mar 09 PHP
php去除deprecated的实例方法
Nov 17 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中的替代语法介绍
2015/01/09 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
Python实现一个简单的MySQL类
2015/01/07 Python
浅谈编码,解码,乱码的问题
2016/12/30 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
python 常见的反爬虫策略
2020/09/27 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
英国领先的维生素和补充剂品牌:Higher Nature
2019/08/26 全球购物
教育学专业毕业生的自我评价
2013/11/21 职场文书
毕业生的求职信范文分享
2013/12/04 职场文书
大学毕业寄语大全
2014/04/10 职场文书
超市采购员岗位职责
2015/04/07 职场文书
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android
mysql数据库实现设置字段长度
2022/06/10 MySQL
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技