2016-07-12 6 views
0

Я хочу фильтровать ключевые слова из строки (с помощью Comma Separator) в соответствии с списком, созданным в TXT-файле, с помощью STR_REPLACE.STR_REPLACE из TXT-файла в строку (с помощью Comma Separator)

Если ключевое слово вы найдете в списке TXT, оно будет удалено из строки.

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

Моя строка: (Каждое слово есть запятая)

$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: (Новая линия каждое слово)

The 
To 
In 
A 
Of 
Is 
That 
Will 
And 

результат :

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

Заранее спасибо

+1

Итак, что вы пробовали до сих пор – RiggsFolly

+0

Вы просто хотите, чтобы каждое слово было в новой строке? –

+0

Я попытался сделать функцию удобной со всем словом, но я надеюсь, что это автоматический способ сделать это с помощью цикла @RiggsFolly – TheQuestionerMan

ответ

3

Используйте file() читать ваши list.txt, которая будет читать каждую строку в массив. Затем вы можете использовать str_replace() как позволяет param1 и param2 быть массивами, хотя вам нужно будет только использовать массив для параметр1

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

С list.txt файла, содержащего

The 
To 
In 
A 
Of 
Is 
That 
Will 
And 
Or 

РЕЗУЛЬТАТ:

Be, For, Rates, Bank, 0, It, More, Brexit, With, At, Has, Eu, Have, Said, Would, As, This, Великобритания, He, May, On, Pound, Are, Interest, Карни, К, они, Но, Гетти, Во-первых, изображения, Голосуйте, О, Уходи, даже, Inflat ion, S, Up, Also, Negative

+0

Привет @riggsfolly Спасибо за решение, но оно не работает. Может быть, потому, что разделение в списке (TXT-файл) состоит в том, что каждая строка имеет 1 ключевое слово (а не Comma Separator). – TheQuestionerMan

+0

См. Измененный код с параметром 'rtrim ($ filters [$ i])', добавленным в цикле, чтобы удалить новые строки – RiggsFolly

+0

вместо файла file() вместо file(). –