PHP性能优化指南:减少正则表达式
我的PHP开发经验之一:尽量少用正则表达式。这是因为正则表达式的性能略低于 PHP 的内置函数。如果你使用PHP函数并且两个正则表达式都能达到相同的效果,那么尽量选择第一个。当然,这需要了解PHP的内置函数!下面我将通过一些例子来说明如何使用可以替换正则表达式的PHP函数。
strpos 函数
该函数的作用是判断一个字符串是否存在于另一个字符串中。使用正则表达式也很容易实现这个功能。我们来谈谈这个函数的使用:
strpos(string ,find,run);
string:必需。指定要搜索的字符串。
查找:必填。指定要搜索的字符串。
开始:可选。指定从哪里开始搜索。
返回值: 返回一个字符串在另一个字符串中第一次出现的位置,如果没有找到该字符串则返回FALSE。
注意:strpos()
不区分大小写。如果匹配时需要区分大小写,可以使用函数strrpos()
来查找。使用一致!函数
array_intersect
该函数的作用是判断两个或多个字符串是否包含相同的内容。引用的是第一个字符串,也就是说,如果第一个字符串和第二个或第三个字符串包含相同的值,则返回该值。如果第二个和第三个字符串具有相同的值,但第一个字符串没有,则不会返回!
array_intersect(array1,array2,array3...);
array1和array2为必填内容;
function in_array
该函数的作用是查找数组中是否存在指定的值。使用起来比较简单。一般用在判断语句中。
in_array(搜索,数组,类型);
搜索:必填。指定要在字段中搜索的值。
字段:必填。指定要搜索的字段。
类型:可选。如果此参数设置为true,则检查正在搜索的数据类型和字段的值是否相同。
返回值: 如果给定的查找值存在于数组字段中,则返回 true。如果第三个参数设置为 true,则仅当该元素存在于数组中并且具有与给定值相同的数据类型时,该函数才返回 true。如果在数组中未找到该参数,则该函数返回 false。
注意:如果搜索参数是字符串并且type参数设置为true,则搜索区分大小写。
目前刚接触PHP的同学如果对PHP函数不熟悉的话,使用正则表达式来实现这些功能会比较容易。虽然实现的功能是一样的,但是性能还是有差距的!我还要解释一下,使用正则表达式在 PHP 开发中几乎是必不可少的。我们能做的就是尽量少用它们!读完本文后,如果您发现自己使用的主题使用了正则表达式,不要觉得主题优化不合适!我们的测试结果基于压力测试。在某些压力条件下可以清楚地看到性能差异。我们正常使用一般没有什么区别!
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。