2015-12-06 66 views
0

嗯,我知道如何使用PHP str_replace替換字符串。我有多個字符串代碼替換它工作正常PHP字符串替換加載文本文件

$subject = 'afsdfasdfasdfasd #%^#^%#@@'; 
$string = array('a','b','c','d','e','@','#','%','!'); 
echo str_replace($string, '', $subject); 

我已經把在文本文件一多的話通過一個像

01 
02 
03 
04 
05 
06 
07 
08 
09 
http:// 
stackoverflow.com 
questions 
ask 
gfx 
value 
words 
that 
i want 
not 
like 
to 
appear 
in 
title 

,並把它命名爲「replace.txt」 現在我的問題是如何我可以加載這個文本文件爲字符串替換功能替換爲空

+0

我會用PHPS文件功能打開和建議逐行讀取這些行,並將其寫入一個數組中。或者立即閱讀,然後將內容爆炸成一個數組。這裏有什麼問題? – arkascha

+0

您是否想將replace.txt中的值用作您作爲str_replace的第一個參數傳遞的數組? – Terminus

+0

看一下:['file()'](http://php.net/manual/en/function.file.php) – Rizier123

回答

1

試試這個

$text = file_get_contents("replace.txt"); $terms = explode("\n", $text); $string = "Hello World"; $string = str_replace($terms, '', $string); echo($string);

我編輯這使replace.txt是被刪除的條款

+0

Adrian Webster,很好的回覆,但我想replace.txt到$字符串的地方 –

+0

Replace.txt是在$文本 –

+0

我編輯答案,原始replace.txt在$文本和替換替換.txt在$ ntext –

1

雖然這個問題沒有明確說明,我想這基本上是這樣的:你有一個文本文件(即由單詞分隔空格),並且您想要刪除列表中出現的所有單詞。

假設$text包含要處理的文本和$terms上面貼的行。將兩個到一個數組:

$text = explode(' ', $text); 
$terms = explode("\n", $terms); 
$text = array_diff($text, $terms); 
$text = implode(' ', $text); 

當然,你可能需要擺脫標點符號和其他的東西的額外處理,但array_diff基本上是做什麼工作。