php代码优化及php相关问题总结


Posted in PHP onOctober 09, 2006

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 相关文章推荐
PHP5+UTF8多文件上传类
Oct 17 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
PHP进程同步代码实例
Feb 12 PHP
php生成gif动画的方法
Nov 05 PHP
PHP文件上传操作实例详解
Sep 27 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 PHP
php对微信支付回调处理的方法
Aug 23 PHP
PHP数据对象映射模式实例分析
Mar 29 PHP
PHP代码加密的方法总结
Mar 13 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 PHP
PHP数据库开发知多少
Oct 09 #PHP
一次编写,随处运行
Oct 09 #PHP
PHPShop存在多个安全漏洞
Oct 09 #PHP
配置最新的PHP加MYSQL服务器
Oct 09 #PHP
xml+php动态载入与分页
Oct 09 #PHP
十天学会php之第七天
Oct 09 #PHP
十天学会php之第九天
Oct 09 #PHP
You might like
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php使用cookie保存登录用户名的方法
2015/01/26 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
基于javaScript的this指向总结
2017/07/22 Javascript
深入浅出es6模板字符串
2017/08/26 Javascript
React如何避免重渲染
2018/04/10 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
2020/04/13 Javascript
React生命周期原理与用法踩坑笔记
2020/04/28 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
python添加模块搜索路径方法
2017/09/11 Python
对pandas中Series的map函数详解
2018/07/25 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
体育教育专业自荐信范文
2013/12/20 职场文书
九年级物理教学反思
2014/01/29 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
团队队名口号大全
2014/06/06 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
小平您好观后感
2015/06/09 职场文书
金榜题名主持词
2015/07/02 职场文书
Java 数组的使用
2022/05/11 Java/Android