2016-07-12 23 views
0

Ich möchte Keywords aus einer Zeichenfolge (mit Komma Trennzeichen) nach einer Liste in einer TXT-Datei mit STR_REPLACE erstellt filtern.STR_REPLACE von TXT-Datei in Zeichenfolge (mit Komma Trennzeichen)

Wenn das Schlüsselwort in der TXT-Liste gefunden wird, wird es aus der Zeichenfolge gelöscht.

$db_tag_new = str_replace('The,',"",$db_tag); 

Mein string: (Jedes Wort ein Kommaseparator haben)

$db_tag="The,To,In,A,Of,Is,That,Will,And,Be,For,Rates,Or,Bank,0,It,More,Brexit,With,At,Has,Eu,Have,Said,Would,As,This,Britain,He,May,On,Pound,Are,Interest,Carney,By,They,But,Getty,First,Images,Vote,About,Leave,Even,Inflation,S,Up,Also,Negative"; 

thebadlist.txt: (Neue Zeile jedes Wort)

The 
To 
In 
A 
Of 
Is 
That 
Will 
And 

das Ergebnis :

$db_tag="Rates,Bank,Brexit,Britain,Pound,Interest,Carney"; 

Vielen Dank im Voraus

+1

Also was hast du bisher versucht – RiggsFolly

+0

Sie wollen nur jedes Wort in einer neuen Zeile sein? –

+0

Ich habe versucht, eine Funktion praktisch mit dem ganzen Wort zu tun, aber ich hoffe, das sind eine automatische Möglichkeit, das mit einer Schleife zu tun @ RiggsFolly – TheQuestionerMan

Antwort

3

Verwenden file() Ihre list.txt zu lesen, die jede Zeile in einem Array gelesen wird. Sie können dann str_replace() verwenden wie die param1 und param2 sein Arrays ermöglicht, obwohl Sie nur für ein Array zu verwenden, benötigen parameter1

<?php 

$db_tag="The,To,In,A,Of,Is,That,Will,And,Be,For,Rates,Or,Bank,0,It,More,Brexit,With,At,Has,Eu,Have,Said,Would,As,This,Britain,He,May,On,Pound,Are,Interest,Carney,By,They,But,Getty,First,Images,Vote,About,Leave,Even,Inflation,S,Up,Also,Negative"; 

$filters = file('list.txt'); 
// add commas to the occurances 
for ($i=0; $i<count($filters); $i++) { 
    $filters[$i] = rtrim($filters[$i]) . ','; 
} 

$db_tag = str_replace($filters, '', $db_tag); 

echo $db_tag.PHP_EOL; 

Mit einer list.txt Datei

The 
To 
In 
A 
Of 
Is 
That 
Will 
And 
Or 

RESULT enthält:

Be, Für, Preise, Bank, 0, Es, Mehr, Brexit, Mit, Bei, Hat, EU, Haben, Gesagt, Würde, Wie, Dies, Großbritannien, Er, Mai, Auf, Pfund, Sind, Interesse, Carney, Von, Sie, Aber, Getty, Ersten, Bilder, Abstimmung, Über, Lassen, Sogar, Inflat ion, S, Up, auch, Negative

+0

Hallo @riggsfolly Danke für die Lösung, aber es funktioniert nicht. Vielleicht, weil das, was in der Liste (TXT-Datei) trennt, ist, dass jede Zeile 1 Schlüsselwörter hat (und nicht Komma-Trennzeichen). – TheQuestionerMan

+0

Siehe geänderten Code mit dem 'rtrim ($ filters [$ i])' hinzugefügt in der Schleife, um die Zeilenumbrüche zu entfernen – RiggsFolly

+0

Verwenden Sie file_get_content() anstelle von file(). –