关于 PHP 对一篇文章批量替换 不同的值!

WBOY
Freigeben: 2016-06-06 20:19:31
Original
1476 Leute haben es durchsucht

问下大家 如何 对一篇文章进行对应替换
如 " 我们的祖国是花园,花园的花朵真鲜艳" 替换成 "我们的motherland是花园,花园的flowers真鲜艳" 有一个数组(或者数据库)

<code>祖国=>"motherland" 
花朵=>"flowers" 
</code>
Nach dem Login kopieren
Nach dem Login kopieren

我现在想到的是循环替换 ,有什么其他的更好的方法吗?

回复内容:

问下大家 如何 对一篇文章进行对应替换
如 " 我们的祖国是花园,花园的花朵真鲜艳" 替换成 "我们的motherland是花园,花园的flowers真鲜艳" 有一个数组(或者数据库)

<code>祖国=>"motherland" 
花朵=>"flowers" 
</code>
Nach dem Login kopieren
Nach dem Login kopieren

我现在想到的是循环替换 ,有什么其他的更好的方法吗?

一、在PHP中替换有三种方式
1、strstr
2、str_replace
3、preg_match

都可满足你的需要

二、效率

<code><?php function f1_strtr() {
  for($i=0; $i<1000000; ++$i) {
    $new_string = strtr("aboutdealers.com", array(".com" => ""));
  }
  return $new_string;
}
function f2_str_replace() {
  for($i=0; $i time str_replace => ' . ($time_strtr > $time_str_replace);
?>
--------------------------------------
time strtr       : 3.9719619750977      result :aboutdealers
time str_replace : 2.9930369853973      result :aboutdealers
time strtr > time str_replace => 1

str_replace is faster than strtr</code>
Nach dem Login kopieren

效率上 str_replace > strtr > preg_match

三、str_replace与strtr的一些不同

<code>Be careful when replacing characters (or repeated patterns in the FROM and TO arrays): 

For example: 

<?php $arrFrom = array("1","2","3","B"); 
$arrTo = array("A","B","C","D"); 
$word = "ZBB2"; 
echo str_replace($arrFrom, $arrTo, $word); 
?> 

I would expect as result: "ZDDB" 
However, this return: "ZDDD" 
(Because B = D according to our array) 

To make this work, use "strtr" instead: 

<?php $arr = array("1" => "A","2" => "B","3" => "C","B" => "D"); 
$word = "ZBB2"; 
echo strtr($word,$arr); 
?> 

This returns: "ZDDB"</code>
Nach dem Login kopieren

四、结论

所以一般用str_replace , 需要正匹配的时候用preg_match

http://php.net/manual/en/function.str-replace.php
http://php.net/manual/zh/function.strtr.php

http://www.w3school.com.cn/php/func_string_str_replace.asp

用str_replace函数传入数组即可

<code>$str = '我们的祖国是花园,花园的花朵真鲜艳';
$result = str_replace(array('祖国','花朵'), array('motherland','flowers'), $str);
echo $result;</code>
Nach dem Login kopieren

PHP自带的字符串替换函数就完全满足你的要求了 建议有需求前去看下官方的手册 很多功能都有函数支持了

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!