Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换数组中的单词。PHP_Php_Arrays_Replace - Fatal编程技术网

替换数组中的单词。PHP

替换数组中的单词。PHP,php,arrays,replace,Php,Arrays,Replace,我有一个文件,我想用数组中的另一个字替换一个字。例如,我有file.txt和数组: $arr=array(数组(“牛奶”、“黄油”)、数组(“狗”、“猫”)) 所以我想用“黄油”替换所有“牛奶”的实例,或者用文本文件中的“猫”替换所有“狗”的实例 如何实现这一点?此代码将每个内部数组中出现的第一个单词替换为第二个单词(对应单词) $txt=file\u get\u contents('file.txt')//文本示例“我的狗喜欢牛奶。我的猫喜欢黄油; $words=array(array('m

我有一个文件,我想用数组中的另一个字替换一个字。例如,我有
file.txt
和数组:

$arr=array(数组(“牛奶”、“黄油”)、数组(“狗”、“猫”))
所以我想用“黄油”替换所有“牛奶”的实例,或者用文本文件中的“猫”替换所有“狗”的实例


如何实现这一点?

此代码将每个内部数组中出现的第一个单词替换为第二个单词(对应单词)

$txt=file\u get\u contents('file.txt')//文本示例“我的狗喜欢牛奶。我的猫喜欢黄油;
$words=array(array('milk','butter'),array('dog','cat'));
$result=$txt;
foreach($words作为$word){
$result=str_replace($word[0],$word[1],$result);
}
回音“Before:”$txt;
回声“
”; 回显“之后:”$结果; 文件内容('file2.txt',$result);//不会替换该文件,因此您可以看到差异。
输出:

我的狗喜欢牛奶。我的猫喜欢黄油
我的猫喜欢黄油。我的猫喜欢黄油


注:

  • 这是一种方式:它不会一个接一个地改变。它将第一个替换为第二个
  • 它没有检查格式错误
  • 它必须大小写相同(区分大小写)
    • 你可以这样尝试

      <?php
      // get file content
      $text = file_get_contents("file.txt");
      
      $arr = array(array("milk", "butter"), array("dog", "cat"));
      
      foreach($arr as $val){
          //replace text with your pattern
          $text = str_replace($val[0],$val[1],$text);
      }
      
      echo $text;
      

      获取文件内容,替换内容并保存回去?!
      
      <?php
      // get file content
      $text = file_get_contents("file.txt");
      
      $arr = array(array("milk", "butter"), array("dog", "cat"));
      
      foreach($arr as $val){
          //replace text with your pattern
          $text = str_replace($val[0],$val[1],$text);
      }
      
      echo $text;