网上流行一些关于执行代码效率的内容,实际测试了一下,有一些结果并非像内容中提及的那样
比如有人建议在str_replace前先用strpos进行查找操作,理由是即使没有替换,str_replace 也会为其参数分配内存从而很慢,因此需要用 strpos 先查找,看是否需要替换,如果需要,再替换
其文中给出的效率提升是:
- 如果需要替换:效率几乎相等,差别在 0.1% 左右。
- 如果不需要替换:用 strpos 快 200%。
这跟我实测的结果并不相同.
实际测试下来,在满足替换条件的情况下,
执行Strpos时间是178ms,直接str_replace是113ms.
在不满足替换条件下,strpos加上后是72ms,不加是88ms
由此数据看出.综合而言使用strpos在大多数需要替换的情况下会加大系统开销.并不是一个值得提倡的作法 :-(
分享到:
相关推荐
另一种方法是编写自定义函数,如`str_replace_once`,它首先通过`strpos`函数找到要替换的字符串的第一个出现位置,然后利用`substr_replace`函数进行替换。下面是一个示例实现: ```php function str_replace_...
substr_replace()函数在实际应用中非常灵活,它不仅可以在字符串的任何位置替换指定长度的子字符串,还可以通过设置特定的参数值实现插入和删除操作。如果$length参数为0,则该函数会将$replacement插入到指定的起始...
这个函数在处理非ASCII或UTF-8等多字节编码的字符串时尤其有用,因为它能正确处理多种字符编码,确保在不同语言环境下也能准确找到子字符串的位置。 函数的签名如下: ```php int mb_strpos ( string $haystack , ...
PHP 函数日期/时间函数time()strtotime()date()checkdate()sleep()usleep()字符串函数strpos()stripos()strrpos()strripos()str_replace()ucfirst()lcfirst()ucwords()substr()strrev()number_format()chunk_split()...
Str_ireplace 函数与 Str_replace 函数类似,但 Str_ireplace 函数是不区分大小写的,例如,Str_ireplace("a", "1", "$a") 将字符串 "$a" 中的 "a" 或 "A" 替换为 "1"。 3. Strrev 函数 Strrev 函数用于将字符串...
有关于,PHP中字符串的处理的相关函数,strlen()函数统计字符串中字符的个数,str_word_count()函数统计字符串中单词...找不到返回false,str_replace('字符串中替换的字符','替换后的字符','字符串')字符穿的替换函数
另一种方法是创建一个名为`str_replace_limit`的函数,它使用`preg_replace`,但确保了正确处理特殊字符,并提供了类似`str_replace`的接口。函数的实现如下: ```php function str_replace_limit($search, $...
`str_replace()`函数则可以用来替换字符串中的特定字符或子串,不仅可以去除特定字符,还能替换为其他字符。如果需要处理字符串中间的空格,可以使用`preg_replace()`函数,它支持正则表达式,能更灵活地匹配和替换...
1. 字符串分割函数:explode() 和 implode() explode() 函数可以将一个字符串按照...在实际应用中,开发者还应结合具体业务逻辑,适当处理可能出现的异常情况,如处理空值和非法输入等,以确保代码的健壮性和可靠性。
$this->start_pos = strpos($this->str, $this->start_str) strlen($this->start_str); $this->end_pos = strpos($this->str, $this->end_str); $this->c_str_l = $this->end_pos - $this->start...
$code = str_replace('{goods_image_url}', site_url() . '/' . $val['default_image'], $code); $content .= $code; unset($code); } $this->js_write($content); $this->js_write($data['footer']); $this-...
- str_replace(search,replace,$str):在整个$str字符串中查找所有search并用replace替换。 - str_irreplace():同str_replace,但不区分大小写。 - strtr($str,search,replace):把$str中的search替换为replace...
由于我们指定了引号(`'`)作为包围字符,所以即使字段内包含逗号,`str_getcsv()`也能正确识别并保持字段的完整性。 ### 应用场景 - 当处理用户上传的CSV文件时,`str_getcsv()`可以用来读取每一行并将其转换为数...
- `str_replace()`用于替换字符串中的指定部分,例如`str_replace('old', 'new', $str)`。 - `strstr()`查找子字符串并返回其后的部分,`true`表示包含子字符串,`false`表示不包含。 6. **字符串分割与合并**: ...
2. **`str_ireplace()`**:与`str_replace()`类似,但不区分大小写。 3. **`strtr()`**:此函数用于替换字符串中的多个字符。 ```php $newStr = strtr($str, array('search' => 'replace', ...)); ``` 4. **`...
- `str_replace`、`str_ireplace`、`str_replace`、`str_rot13`、`str_shuffle` 等函数用于字符串的替换、旋转、随机排列等。 - `str_split` 将字符串分割成数组。 - `str_word_count` 计算字符串中的单词数。 - `...
例如,`str_replace("old", "new", "The old string")`将返回"The new string"。 8. **strstr()** 和 **stristr()**:这两个函数用于查找字符串中指定子串的第一个出现,并返回从该位置到字符串结尾的部分。`strstr...