搜索
首页后端开发php教程深入探讨如何提高PHP运行效率_PHP教程

深入探讨如何提高PHP运行效率_PHP教程

Jul 15, 2016 pm 01:31 PM
php传递使用函数如何探讨提高效率数组深入知道运行

大家都知道,提高PHP运行效率1,在函数中,传递数组时

使用 return 比使用 global 要高效

比如

  1. function userloginfo($usertemp){   
  2. $detail=explode("|",$usertemp);   
  3. return $detail;   
  4. }   
  5. $login=userloginfo($userdb);  

  1. function userloginfo($usertemp){   
  2. global $detail;   
  3. $detail=explode("|",$usertemp);   
  4. }   
  5. userloginfo($userdb); 

要高效

提高PHP运行效率2,(这个代码用于得到程序目录对应的网址,推荐使用)

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">urlarray</span><span>=</span><span class="attribute-value">explode</span><span>('/',$HTTP_<br>SERVER_VARS['REQUEST_URI']);   </span></span></li>
<li>
<span>$</span><span class="attribute">urlcount</span><span>=count($urlarray);unset<br>($urlarray[$urlcount-1]);   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">ofstarurl</span><span>=</span><span class="attribute-value">'http://'</span><span>.<br>$HTTP_SERVER_VARS['HTTP_HOST'].<br>implode('/',$urlarray);  </span>
</li>
</ol>

这段代码比

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">pre_urlarray</span><span>=</span><span class="attribute-value">explode</span><span>('/',$HTTP_SERVER_VARS['HTTP_REFERER']);   </span></span></li>
<li>
<span>$</span><span class="attribute">pre_url</span><span>=</span><span class="attribute-value">array_pop</span><span>($pre_urlarray); </span>
</li>
</ol>

要高效

提高PHP运行效率3,

在循环中判断时,数值判断使用恒等要比等于高效

<ol class="dp-xml"><li class="alt"><span><span>$</span><span class="attribute">a</span><span>=</span><span class="attribute-value">2</span><span>;$</span><span class="attribute">b</span><span>=</span><span class="attribute-value">2</span><span>;  </span></span></li></ol>

比如

<ol class="dp-xml"><li class="alt"><span><span>if($</span><span class="attribute">a</span><span>==$b)$</span><span class="attribute">c</span><span>=$a;   </span></span></li></ol>

<ol class="dp-xml"><li class="alt"><span><span>if($</span><span class="attribute">a</span><span>===$b)$</span><span class="attribute">c</span><span>=$a;  </span></span></li></ol>

高效

提高PHP运行效率4,

mysql 查询时尽量使用where in 少用 limit

limit查多记录的前几条, 速度很快, 但是查询最面几条就会慢

使用in .在查询连续性记录,非常快, 非连续性记录第一次运行会稍微慢一点,但是之后将比较快!

提高PHP运行效率5,

NT服务器数据操作稳定性不及unix/linux

提高PHP运行效率6,

输出前使用尽量使用 ob_start(); 可以加快输出速度,适用NT或nuli/linux,对unlix类服务器 如果使用 ob_start('ob_gzhandler');输出效率将更高

提高PHP运行效率7,

判断的时候尽量使用if($a==他的值) 否定的时候尽量使用if(empty($a)),因为这样程序运行更快速

提高PHP运行效率8,

使用不等时 != 与 效率相当

提高PHP运行效率9,

个人经验得 使用 $a="11111111111111"; 的效率和 $a='11111111111111'; 相当.并不象书本说的相差很大

提高PHP运行效率10,

使用规范的SQL语句, 会有利于MySQL的解析

提高PHP运行效率11,

使用

<ol class="dp-xml">
<li class="alt"><span><span>if($online){   </span></span></li>
<li>
<span>$</span><span class="attribute">online1</span><span>=$online;   </span>
</li>
<li class="alt"><span>setcookie('online1',$online,<br>$cookietime,$ckpath,$ckdomain,$secure);   </span></li>
<li><span>}  </span></li>
</ol>

COOKIE将马上生效

使用

<ol class="dp-xml">
<li class="alt"><span><span>if($online)   </span></span></li>
<li><span>setcookie('online1',$online,<br>$cookietime,$ckpath,$ckdomain,$secure);  </span></li>
</ol>

COOKIE需要再刷新一次才能生效

提高PHP运行效率12,

使用

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">handle</span><span>=</span><span class="attribute-value">fopen</span><span>($filename,wb);   </span></span></li>
<li><span>flock($handle,LOCK_SH);   </span></li>
<li class="alt">
<span>$</span><span class="attribute">filedata</span><span>=</span><span class="attribute-value">fread</span><span>($handle,<br>filesize($filename));   </span>
</li>
<li><span>fclose($handle);  </span></li>
</ol>

<ol class="dp-xml"><li class="alt"><span><span>file($filename);  </span></span></li></ol>

无论在速度还是稳定上都要优秀

提高PHP运行效率13,截断字符串优化函数(可避免?字符出现)

<ol class="dp-xml">
<li class="alt"><span><span>ifunction substrs($content,$length) {   </span></span></li>
<li>
<span>if(strlen($content)</span><span class="tag">></span><span>$length){   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">num</span><span>=</span><span class="attribute-value">0</span><span>;   </span>
</li>
<li>
<span>for($</span><span class="attribute">i</span><span>=</span><span class="attribute-value">0</span><span>;$i</span><span class="tag"><span>$length-3;$i++) {   </span></span>
</li>
<li class="alt">
<span>if(ord($content[$i])</span><span class="tag">></span><span>127)$num++;   </span>
</li>
<li><span>}   </span></li>
<li class="alt">
<span>$num%</span><span class="attribute">2</span><span>==1 ? $</span><span class="attribute">content</span><span>=</span><span class="attribute-value">substr</span><span>(<br>$content,0,$length-4):$</span><span class="attribute">content<br></span><span>=</span><span class="attribute-value">substr</span><span>($content,0,$length-3);   </span>
</li>
<li>
<span>$</span><span class="attribute">content.</span><span>=</span><span class="attribute-value">' ...'</span><span>;   </span>
</li>
<li class="alt"><span>}   </span></li>
<li><span>return $content;   </span></li>
<li class="alt"><span>}   </span></li>
</ol>

比如

<ol class="dp-xml"><li class="alt"><span><span>$newarray[1]=substrs($newarray[1],25); </span></span></li></ol>

提高PHP运行效率14,程序中屏蔽大小写

<ol class="dp-xml">
<li class="alt"><span><span>for ($</span><span class="attribute">asc</span><span>=</span><span class="attribute-value">65</span><span>;$asc</span><span class="tag"><span>=90;$asc++)   </span></span></span></li>
<li><span>{ //strtolower() 此函数在一些服务<br>器会产生乱码!   </span></li>
<li class="alt"><span>if (strrpos($regname,chr($asc))!==false)   </span></li>
<li><span>{   </span></li>
<li class="alt">
<span>$</span><span class="attribute">error</span><span>=</span><span class="attribute-value">"为了避免用户名混乱,用户名<br>中禁止使用大写字母,请使用小写字母"</span><span>;   </span>
</li>
<li>
<span>$</span><span class="attribute">reg_check</span><span>=</span><span class="attribute-value">0</span><span>;   </span>
</li>
<li class="alt"><span>}   </span></li>
<li><span>} </span></li>
</ol>

提高PHP运行效率15,不使用 file();和不使用 fget();(不稳定或速度慢) 取一数组函数

<ol class="dp-xml">
<li class="alt"><span><span>function openfile($filename,$</span><span class="attribute">method</span><span>=</span><span class="attribute-value">"rb"</span><span>)   </span></span></li>
<li><span>{   </span></li>
<li class="alt">
<span>$</span><span class="attribute">handle</span><span>=@fopen($filename,$method);   </span>
</li>
<li><span>@flock($handle,LOCK_SH);   </span></li>
<li class="alt">
<span>@$</span><span class="attribute">filedata</span><span>=</span><span class="attribute-value">fread</span><span>($handle,filesize<br>($filename));   </span>
</li>
<li><span>@fclose($handle);   </span></li>
<li class="alt">
<span>$</span><span class="attribute">filedata</span><span>=</span><span class="attribute-value">str_replace</span><span>("n","<br>n</span><span class="tag"><span class="tag-name">ofstar:</span><span class="tag">></span><span>",$filedata);   </span></span>
</li>
<li>
<span>$</span><span class="attribute">filedb</span><span>=</span><span class="attribute-value">explode</span><span>("</span><span class="tag"><span class="tag-name">ofstar:</span><span class="tag">></span><span>",$filedata);   </span></span>
</li>
<li class="alt"><span>//array_pop($filedb);   </span></li>
<li>
<span>$</span><span class="attribute">count</span><span class="attribute-value">count</span><span>=count($filedb);   </span>
</li>
<li class="alt"><span>if($filedb[$count-1]==''){unset<br>($filedb[$count-1]);}   </span></li>
<li><span>return $filedb;   </span></li>
<li class="alt"><span>}  </span></li>
</ol>

这个函数虽然代码比较多,不过在速度和稳定性上提高PHP运行效率的优势很大!


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446216.htmlTechArticle大家都知道, 提高PHP运行效率1,在函数中,传递数组时 使用 return 比使用 global 要高效 比如 functionuserloginfo($usertemp){ $ detail = explode (|,$userte...
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
高流量网站的PHP性能调整高流量网站的PHP性能调整May 14, 2025 am 12:13 AM

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

PHP中的依赖注入:初学者的代码示例PHP中的依赖注入:初学者的代码示例May 14, 2025 am 12:08 AM

你应该关心DependencyInjection(DI),因为它能让你的代码更清晰、更易维护。1)DI通过解耦类,使其更模块化,2)提高了测试的便捷性和代码的灵活性,3)使用DI容器可以管理复杂的依赖关系,但要注意性能影响和循环依赖问题,4)最佳实践是依赖于抽象接口,实现松散耦合。

PHP性能:是否可以优化应用程序?PHP性能:是否可以优化应用程序?May 14, 2025 am 12:04 AM

是的,优化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)优化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,并避免使用

PHP性能优化:最终指南PHP性能优化:最终指南May 14, 2025 am 12:02 AM

theKeyStrategiestosiminificallyBoostphpapplicationPermenCeare:1)useOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)优化AtabaseInteractionswithPreparedStateTemtStatementStatementSandProperIndexing,3)配置

PHP依赖注入容器:快速启动PHP依赖注入容器:快速启动May 13, 2025 am 12:11 AM

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

PHP中的依赖注入与服务定位器PHP中的依赖注入与服务定位器May 13, 2025 am 12:10 AM

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

PHP性能优化策略。PHP性能优化策略。May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

PHP电子邮件验证:确保正确发送电子邮件PHP电子邮件验证:确保正确发送电子邮件May 13, 2025 am 12:06 AM

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!