2016-06-29 9 views
-2

Ich habe Datei und ich möchte ein Wort durch ein anderes wie in Array ersetzen. Zum Beispiel habe ich file.txt und Array:Ersetzen von Wörtern aus einem Array. PHP

$arr = array(array("milk", "butter"), array("dog", "cat")) 

Deshalb möchte ich alle Instanzen von „Milch“ mit „Butter“ ersetzen - oder alle Instanzen von „Hunden“ mit „Katzen“ in der Textdatei.

Wie kann ich das erreichen?

+1

Holen Sie sich den Inhalt der Datei, ersetzen Sie das Zeug und speichern Sie es zurück ?! – Rizier123

Antwort

2

Dieser Code ersetzt alle Vorkommen des ersten Wortes jedes inneren Arrays durch das zweite Wort (den Korrespondenten).

$txt = file_get_contents('file.txt'); //text example 'My dog loves milk. My cat loves butter.'; 
$words = array(array('milk', 'butter'), array('dog', 'cat')); 

$result = $txt; 
foreach($words as $word){ 
    $result = str_replace($word[0], $word[1], $result); 
} 

echo 'Before: ' . $txt; 
echo '<br>'; 
echo 'After: ' . $result; 

file_put_contents('file2.txt', $result); // won't replace the file so you can see the difference. 

Ausgang:

Bevor: Mein Hund Milch liebt. Meine Katze liebt Butter.
Nachher: ​​Meine Katze liebt Butter. Meine Katze liebt Butter.


Hinweise:

  • Dies ist eine Möglichkeit: es ist nicht eine durch die andere nicht ändert. Es ersetzt das erste durch das zweite;
  • Es wird nicht nach Fehlern gesucht;
  • Es muss den gleichen Fall (Groß- und Kleinschreibung beachten).
+1

* Ziemlich groovig * –

1

Sie können so versuchen;

<?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;