2015-02-28 3 views
1

Я хочу использовать strstr(), чтобы удалить все перед словом. У меня уже есть это здесь:Используйте strstr() в каждой строке

$file = file_get_contents('text.txt'); 
$deleted = strstr($file, 'word'); 
echo $deleted; 

Но это, только для одной линии! Мне нужно, чтобы удалить все слова перед каждой строкой в ​​txt-файле.

Я надеюсь, что кто-то может помочь мне :)

ответ

1

Это должно работать для вас:

(Ее я просто получить все строки в массив с file() Тогда я иду через каждый элемент с array_map() и удалить все. перед "слова" с strstr())

$file = file('text.txt'); 
$deleted = array_map(function($line){ 
    return strstr($line, "word"); 
}, $file); 

echo implode("<br />", $deleted); 

Пример файла:

test word test2 
test word test 

Выход:

word test2 
word test 
+0

Nice, спасибо, его рабочий :) – maxdachs

+0

На самом деле я думаю, что в этом случае array_walk будет лучшим выбором. Он не будет создавать новый массив с содержимым файла, поэтому в этом случае array_map менее эффективен для памяти. array_walk ($ file, function (& $ line) { $ line = strstr ($ line, "word"); }); – MegaAppBear

+0

@amrhady Это также способ: D Вы можете выбрать то, что хотите (с помощью array_map вы можете сохранить исходный файл в массиве) – Rizier123

Смежные вопросы