php语言中字符,PHP开发语言中字符窜的高效率写法

本文分享了PHP编程中如何通过避免正则表达式、使用strtr函数进行字符替换、压缩大字符串、优化输出语句和字符串变量等方式提高性能。重点介绍了str_replace、strtr、isset和split等高效函数的应用。
摘要由CSDN通过智能技术生成

4d7d439c7099a1ca0e81a1dd3cec7f51.png

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。

一.字符串

1.1少用正则表达式

能用PHP内部字符串操作函数的情况下,尽量用他们,不要用正则表达式,因为其效率高于正则。

没得说,正则最耗性能。

str_replace函数要比preg_replace快得多,strtr函数又比str_replace来得快。

有没有你漏掉的好用的函数?

例如:strpbrk()、strncasecmp()、strpos()、strrpos()、stripos()、strripos()。

1.2字符替换

如果需要转换的全是单个字符,用字符串作为strtr()函数完成替换,而不是数组:

效率提升:10倍。

str_replace字符替换比正则替换preg_replace快,但strtr比str_replace又快1/4。

另外,不要做无谓的替换,即使没有替换,str_replace也会为其参数分配内存。很慢!

用strpos先查找(非常快),看是否需要替换,如果需要,再替换。

如果需要替换,效率几乎相等,差别在0.1%左右。

如果不需要替换:用strpos快200%。

1.3压缩大的字符串

使用gzcompress()和gzuncompress()对容量大的字符串进行压缩和解压,再存入和取出数据库。

这种内置的函数使用gzip算法,能压缩字符串90%。

1.4 echo输出

echo字符串用逗号代替点连接符更快些。

虽然,echo是一种语言结构,不是真正的函数。

但是,它可以把逗号隔开的多个字符串当作“函数”参数传入,所以速度会更快。

1.5尽量用单引号

PHP引擎允许使用单引号和双引号来封装字符串变量,但是它们的速度是有很大的差别的!

使用双引号的字符串会告诉PHP引擎,首先去读取字符串内容,查找其中的变量,并改为变量对应的值。

一般来说字符串是没有变量的,使用双引号会导致性能不佳。

最好使用字符串连接,而不是双引号字符串。

$output ="This is a plain

string";//不好的实践

$output ='This is a plain string';//好的实践

$type ="mixed";//不好的实践

$output ="This is a $type

string";$type ='mixed';//好的实践

$output ='This is a '. $type .' string';

1.6使用isset代替strlen

在检验字符串长度时,我们第一想法会使用strlen()函数。

此函数执行起来相当快,因为它不做任何计算,只返回在zval结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。

但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化、哈希查找,会跟随被调用的函数一起执行。

在某些情况下,你可以使用isset()技巧加速执行你的代码。例如:

1.7用split分割字符串

在分割字符串时,split()要比explode()快。

1.8 echo效率高于print

因为echo没有返回值,print返回一个整型。

注意:echo输出大字符串的时候,如果没有调整就会严重影响性能。

打开Apache的mod_deflate进行压缩,或者打开ob_start将内容放进缓冲区,可以改善性能问题。

php作为开发类的一个语言,现在受到越来越多人的关注,选择合肥PHP培训,不再孤军奋战,轻轻松松做IT高薪白领。合肥达内PHP培训带领有明确目标的学子迈向成功之路!

*版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值