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编程之高级技巧——利用Mysql函数
Oct 09 PHP
php中变量及部分适用方法
Mar 27 PHP
PHP 裁剪图片成固定大小代码方法
Sep 09 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
Feb 21 PHP
PHP防止跨域提交表单
Nov 01 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
php设置静态内容缓存时间的方法
Dec 01 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
Mar 14 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
Sep 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
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
深入解析php之sphinx
2013/05/15 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
js表格分页实现代码
2009/09/18 Javascript
JQuery Study Notes 学习笔记(一)
2010/08/04 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
python字典快速保存于读取的方法
2018/03/23 Python
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
计算机专业个人求职自荐信
2013/09/21 职场文书
服务之星获奖感言
2014/01/21 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
2014年辅导员工作总结
2014/11/18 职场文书
面试通知单大全
2015/04/20 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
Python Pandas解析读写 CSV 文件
2022/04/11 Python
Go 内联优化让程序员爱不释手
2022/06/21 Golang