美文网首页程序员
高效率的PHP写法(字符串)

高效率的PHP写法(字符串)

作者: 未_来_可_期 | 来源:发表于2019-04-01 09:39 被阅读0次
话说,这图丑吗?


一.字符串

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写法(字符串)

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

  • PHP高效率写法

    1.尽量静态化;2.echo的效率高于print,因为echo没有返回值,print返回一个整型;3.在循环之前设...

  • 高效率php写法

    尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。当然...

  • PHP高效率写法

    尽量静态化: 静态方法和非静态方法的效率主要区别在内存: 静态方法在程序开始时生成内存,实例方法在程序运行中生成内...

  • PHP的高效率写法

    1、尽量静态化;如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。当...

  • PHP的高效率写法

    1、尽量静态化; 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4 这个测试方法需要在十万级以上次执行,...

  • PHP 字符串中直接解析函数的写法

    PHP 字符串中直接解析函数的写法 PHP 中的字符串理论上是不能够解析函数的,仅能够解析变量。最近发现一种特殊的...

  • 高效率的PHP写法(语句+函数)

    语句 2.1 最好不用@ 用@掩盖错误会降低脚本运行速度,并且在后台有很多额外操作。 用@比起不用,效率差距 3 ...

  • PHP 三种方式实现链式操作

    在php中有很多字符串函数,例如要先过滤字符串收尾的空格,再求出其长度,一般的写法是: 如果要实现类似js中的链式...

  • PHP 操作串口或socket时以16进制发送

    PHP 操作串口或socket时以16进制发送"FD FF 01 0F"16进制字符串写法:"\xFD\xFF\x...

网友评论

    本文标题:高效率的PHP写法(字符串)

    本文链接:https://www.haomeiwen.com/subject/ppdmbqtx.html