2015-02-28 6 views
1

Je veux utiliser strstr() pour tout effacer avant un mot. J'ai déjà ce ici:Utilisez strstr() dans chaque ligne

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

Mais cela, est que pour une ligne! J'ai besoin de tout effacer avant un mot sur chaque ligne de mon fichier txt.

J'espère que quelqu'un peut me aider :)

Répondre

1

Cela devrait fonctionner pour vous:

(elle, je viens d'obtenir toutes les lignes dans un tableau avec file() Ensuite, je passe par chaque élément avec array_map() et supprimer tout. avant "mot" avec strstr())

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

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

Exemple de fichier:

test word test2 
test word test 

Sortie:

word test2 
word test 
+0

Nice, Merci beaucoup, son travail :) – maxdachs

+0

En fait, je pense que dans ce cas array_walk serait un meilleur choix. Il ne créera pas de nouveau tableau avec le contenu du fichier, donc array_map est moins efficace dans ce cas. array_walk ($ fichier, fonction (& $ ligne) { $ line = strstr ($ ligne, "mot"); }); – MegaAppBear

+0

@amrhady C'est aussi un moyen: D Vous pouvez choisir ce que vous voulez (Avec array_map vous pouvez simplement conserver le fichier original dans le tableau) – Rizier123