php函数之strtr和str_replace的用法详解以及效率分析 原创

原创  更新时间:2022年11月05日 18:31:56   原创 作者:yin  
PHP中主要用strtr()和str_repalce()这两个函数替换字符串和数组,但你们都知道他们这两个函数的区别和用法吗?有不少文章在说使用strtr函数比str_replace快4倍,那为什么很多时候都在用str_replace,到底应该使用哪个函数呢

PHP中主要用strtr()和str_repalce()这两个函数替换字符串和数组,但你们都知道他们这两个函数的区别和用法吗?有不少文章在说使用strtr函数比str_replace快4倍,那为什么很多时候都在用str_replace,到底应该使用哪个函数呢?

一. str_repalce()用法

str_replace(find,replace,string,count)
find:规定要查找的字符串或数组;
replace:被用来替换的字符串或数组;
string:被查询的字符串或数组;
count:可选,替换的次数

<?php
  //实例一:字符串替换字符串
  $str1 = str_replace("red","black","red green yellow pink purple");
  echo $str1;  //输出结果为black green yellow pink purple
  echo "<br>";

  //实例二:数组的键值用字符串替换
  $arr = array("blue","red","green","yellow");
  $str1 = str_replace("red","pink",$arr,$count);
  print_r($str1);
  //输出结果
  //Array ( [0] => blue [1] => pink [2] => green [3] => yellow ) 
  echo "<br>" . $count; //输出替换次数1

  //实例三:数组替换数组,一一映射替换
  $arr1 = array("banana","orange");
  $arr2 = array("pitaya","tomato");
  $con_arr = array("apple","orange","banana","grape");
  $con_rep = str_replace($arr1,$arr2,$con_arr,$count1);
  print_r($con_rep);
  //输出结果
  // Array ( [0] => apple [1] => tomato [2] => pitaya [3] => grape ) 
  echo "<br>" . $count1; //输出替换次数2

  //实例四:如$search为数组,$replace为字符串时
  $search = array("banana","grape");
  $replace = "tomato";
  $arr = array("banana","apple","orange","grape");
  $new_arr = str_replace($search,$replace,$arr,$count2);
  print_r($new_arr);
  //输出结果
  //Array ( [0] => tomato [1] => apple [2] => orange [3] => tomato ) 
  echo "<br>" . $count2; //输出替换次数2
?>

 

二. strtr()用法

 

<?php
  	//用法一:strtr(string,from,to)
	echo strtr("I Love you","Lo","lO");
	/*输出结果:
	I lOve yOu
	you中的o被替换了,很诡异,要注意可能;
	这种用法也不能被替换为空,不生效;
	不推荐使用该方法*/

	//用法二:strtr(string,array)
	$arr = array("Hello" => "Hi", "world" => "earth");
	echo strtr("Hello world",$arr);
	/*输出结果:
	Hi earth*/
?>

三. 效率对比

笔者使用apache环境和nginx环境做了测试:5.6版本 str_replace 比 strtr 平均效率高4倍,7.1版本效率基本相同。

四. 总结

使用strtr会出现一些不可控的错误,strtr被查询替换的只能是字符串,而且str_replace函数比strtr效率高、速度快,因此推荐使用str_replace函数替换字符串或数组。

到此这篇关于php函数之strtr和str_replace的用法详解以及效率分析的文章就介绍到这了,更多相关php函数strtr和str_replace对比内容请搜索脚本之家以前的文章或继续浏览下面的相关文章。希望大家以后多多支持脚本之家!

相关文章

  • PHP中调试函数debug_backtrace的使用示例代码

    PHP中调试函数debug_backtrace的使用示例代码

    debug_backtrace() 是一个很低调的函数,很少有人注意过它,这篇文章主要给大家介绍了关于PHP中调试函数debug_backtrace的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,感兴趣的朋友们随着小编来一起学习学习吧。
    2017-09-09
  • php使用parse_url和parse_str解析URL

    php使用parse_url和parse_str解析URL

    本文主要向大家介绍了php中2个解析URL的方法(parse_url和parse_str),以及这2种方法的简介和用法,十分全面,推荐给有需要的小伙伴们。
    2015-02-02
  • php格式化日期实例分析

    php格式化日期实例分析

    这篇文章主要介绍了php格式化日期的方法,通过一个自定义函数以实例形式简单分析了将日期格式化输出的方法,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • php 清除网页病毒的方法

    php 清除网页病毒的方法

    好像是进行一些替换操作,大家可以测试
    2008-12-12
  • PHP的Yii框架中Model模型的学习教程

    PHP的Yii框架中Model模型的学习教程

    这篇文章主要介绍了PHP的Yii框架中Model模型的学习教程,Yii框架本身就显庞大,所以模型类也就更加需要很好的编写维护,需要的朋友可以参考下
    2016-03-03
  • PHP使用内置dir类实现目录遍历删除

    PHP使用内置dir类实现目录遍历删除

    这篇文章主要介绍了PHP使用内置dir类实现目录遍历删除的方法,涉及php中dir类的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 关于PHPDocument 代码注释规范的总结

    关于PHPDocument 代码注释规范的总结

    本篇文章是对PHPDocument代码注释规范进行了详细的总结与介绍,需要的朋友参考下
    2013-06-06
  • php curl发送请求实例方法

    php curl发送请求实例方法

    在本篇文章里小编给大家整理的是关于php curl发送请求详细教程以及相关知识点,需要的朋友们可以学习下。
    2019-08-08
  • 网站用php实现paypal整合方法

    网站用php实现paypal整合方法

    虽然在中国paypal不是很流行,但如果把范围扩大到世界的话,那paypal无疑就是老大了。
    2010-11-11
  • 如何获知PHP程序占用多少内存(memory_get_usage)

    如何获知PHP程序占用多少内存(memory_get_usage)

    想要知道编写的 PHP 脚本需要占用多少内存么?很简单,直接使用 PHP 查看当前分配给 PHP 脚本的内存的函数 memory_get_usage() 就可以了
    2012-09-09

最新评论