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
PHP如何编写易读的代码
Jul 10 PHP
可以在线执行PHP代码包装修正版
Mar 15 PHP
php4与php5的区别小结(配置异同)
Dec 20 PHP
php长字符串定义方法
Jul 12 PHP
php数组的概述及分类与声明代码演示
Feb 26 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
Jul 15 PHP
php通过字符串调用函数示例
Mar 02 PHP
PHP中常见的缓存技术实例分析
Sep 23 PHP
laravel 判断查询数据库返回值的例子
Oct 11 PHP
PHP如何使用array_unshift()在数组开头插入元素
Sep 01 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
pdo中使用参数化查询sql
2011/08/11 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
2014/06/30 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
php处理复杂xml数据示例
2016/07/11 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
PHP示例演示发送邮件给某个邮箱
2019/04/03 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
2019/10/11 PHP
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
jscript读写二进制文件的方法
2015/04/22 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
JS实现图片切换效果
2018/11/17 Javascript
js实现一个简易计算器
2020/03/30 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
python决策树之C4.5算法详解
2017/12/20 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
Python urllib3软件包的使用说明
2020/11/18 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
为什么需要版本控制
2016/10/28 面试题
什么时候用assert
2015/05/08 面试题
水务局局长岗位职责
2013/11/28 职场文书
大三毕业自我鉴定
2014/01/15 职场文书
银行批评与自我批评
2014/02/10 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
二审答辩状范文
2015/05/22 职场文书
Redis入门基础常用操作命令整理
2022/06/01 Redis