dedlfix: Fehler in Funktion

Beitrag lesen

hast du berücksichtigt, dass file() beim einlesen die zeilenumbrüche am ende jeder zeile bestehen lässt?

nein, dass nicht, da der betreffende string ganz am anfang jeder datei vorkommt:

news_1@blabla|blalba|blalbal

in_array() sucht nicht irgendein Teilstück in einem Array sondern einen vollständigen Wert. Wenn ein Wert in deinem Array news@bla heißt und du "nur" nach news suchst wird das von in_array() nicht gefunden.

In deinem Fall liefert in_array() true zurück, wenn du nach "news_1@blabla|blalba|blalbal\n" suchen würdest (beachte das \n am Ende).

Du musst also zu Fuß über das Array iterieren und die Elemente mit z.B. substr_count() auf ein Ergebnis > 0 testen. (substr_count() hat gegenüber strpos() den Vorteil, dass man bei einem Vorkommen des zu suchenden Strings an der Position 0 als Ungeübter nicht auf die Nase fällt. :-)