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 文件夹删除、php清除缓存程序
Aug 25 PHP
劣质的PHP代码简化
Feb 08 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
Dec 17 PHP
php绘图之加载外部图片的方法
Jan 24 PHP
PHP动态输出JavaScript代码实例
Feb 12 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
php获取一定范围内取N个不重复的随机数
May 28 PHP
PHP编程计算文件或数组中单词出现频率的方法
May 22 PHP
CakePHP框架Model关联对象用法分析
Aug 04 PHP
php实现映射操作实例详解
Oct 02 PHP
laravel 使用事件系统统计浏览量的实现
Oct 16 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
用PHP4访问Oracle815
2006/10/09 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
jquery $.each() 使用小探
2013/08/23 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
学习jQuey中的return false
2015/12/18 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
vue组件生命周期详解
2017/11/07 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
Python字符串和字典相关操作的实例详解
2017/09/23 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python读取指定字节长度的文本方法
2019/08/27 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
中国电视购物:快乐购
2017/02/04 全球购物
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
教学器材管理制度
2014/01/26 职场文书
求职简历中自我评价
2014/01/28 职场文书
物流创业计划书
2014/02/01 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
高考励志标语
2014/06/05 职场文书
房展策划方案
2014/06/07 职场文书
党员个人自我评价
2015/03/03 职场文书
2015年双拥工作总结
2015/04/08 职场文书
主持稿开场白
2015/06/01 职场文书
k-means & DBSCAN 总结
2021/04/27 Python
Python打包为exe详细教程
2021/05/18 Python
OpenCV全景图像拼接的实现示例
2021/06/05 Python