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 相关文章推荐
以文本方式上传二进制文件的PHP程序
Oct 09 PHP
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
Apr 12 PHP
php ss7.5的数据调用 (笔记)
Mar 08 PHP
joomla jce editor 解决上传中文名文件失败问题
Jun 09 PHP
Smarty foreach控制循环次数的实现详解
Jul 03 PHP
php判断是否为json格式的方法
Mar 04 PHP
php 邮件发送问题解决
Mar 22 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
Laravel实现用户注册和登录
Jan 23 PHP
PHP编程 SSO详细介绍及简单实例
Jan 13 PHP
在Laravel 中实现是否关注的示例
Oct 22 PHP
PHP获取学生成绩的方法
Nov 17 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的时间戳与具体时间转化的简单实现
2016/06/13 PHP
php-app开发接口加密详解
2018/04/18 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
AngularJS语法详解
2015/01/23 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
vuex页面刷新导致数据丢失的解决方案
2020/12/10 Vue.js
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
讲解Python中fileno()方法的使用
2015/05/24 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
在Django model中设置多个字段联合唯一约束的实例
2019/07/17 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
python中怎么表示空值
2020/06/19 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
Python识别验证码的实现示例
2020/09/30 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
出国留学自荐信
2013/10/25 职场文书
工程材料采购方案
2014/05/18 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android