Gibt es eine solche Funktion in PHP, die grep -f Dateiname in Unix/Linux-Systemen tut. Wenn es keine gibt, würden die PHP-Funktionen/Tools dazu beitragen, eine angepasste Methode/Funktion dafür zu erstellen. Vielen Dank!grep mit -f wie in PHP
Antwort
Eigentlich IMHO, würde ich sagen, es ist die folgende:
$result = preg_grep($pattern, file($path));
Siehe preg_grep
Docs und file
Docs.
Wenn Sie diese (rekursiv) tun müssen, über eine Reihe von Dateien, gibt es auch glob
und foreach
oder die (Recursive
) DirectoryIterator
oder die GlobIterator
Docs und nicht die RegexIterator
Docs zu vergessen.
Beispiel mit SplFileObject und RegexIterator:
$stream = new SplFileObject($file);
$grepped = new RegexIterator($stream, $pattern);
foreach ($grepped as $line) {
echo $line;
}
Output (alle Linien von $file
$ Muster enthält):
$grepped = new RegexIterator($stream, $pattern);
foreach ($grepped as $line) {
echo $line;
}
Demo: https://eval.in/208699
Sie können die Funktion file_get_contens() kombinieren, um eine Datei zu öffnen, und die Funktion preg_match_all(), um Inhalte mit einem Regex zu erfassen.
$file = file_get_contents ('path/to/file.ext');
preg_match_all ('regex_pattern_here', $file, $matches);
print_r ($matches);
Ich habe 'file_get_contents()' benutzt, aber es schlägt periodisch fehl. – FractalSpace
- 1. Schwanz -f + Grep?
- 2. PowerShell entspricht grep -f
- 3. Über 'grep -f': Spielmuster mit Datei
- 4. schnelle Alternative zu grep -f
- 5. Wie kombinierst du 'tail -f' und 'grep' in bash?
- 6. Tail -f in Grep in Schnitt funktioniert nicht richtig
- 7. grep -f auf Dateien in einem Zip-Ordner
- 8. Grep -A1 -f mehr Ergebnisse liefert, als es sollte
- 9. 'tail -f' gibt keine einzelnen Zeilen, wenn durch grep '
- 10. Was in grep Handbuch
- 11. Wie grep mit einer Liste von Wörtern
- 12. grep Rohr mit sed
- 13. grep in IF-Anweisung
- 14. Wie F [A \/B] in (F [A], F [B])
- 15. Mit Escape-Zeichen in grep
- 16. In-Place-Verarbeitung mit grep
- 17. F # Endlosschleifen in F #
- 18. Wie grep in Sourcetree git
- 19. Wie grep ich in R?
- 20. PHP Grep Datei Inhalt von URL
- 21. Wie caraces wie(), '* [] aus einem Grep-Ergebnis mit grep, awk oder sed entfernen?
- 22. Mit WriteLineAsync in F #
- 23. Wie in F #
- 24. Mit grep Timecode anpassen
- 25. Wie in grep Ausgang cd?
- 26. Suche String mit grep
- 27. Filterbefehl Ausgabe mit grep
- 28. grep && awk Kombinationsergebnis in bash
- 29. zcat grep mit Dateinamen
- 30. Unix Hilfe mit Grep?
Während dies funktional äquivalent ist, lädt es die gesamte Datei in den Speicher, während die Befehlszeile grep nicht. – cmc
@cmd: Ja, wenn Sie Speicher sparen möchten, beachten Sie bitte [** SplFileObject **] (http://php.net/SplFileObject) und [** RegexIterator **] (http://php.net/ RegexIterator). – hakre
hört sich gut an! ... Sie hätten nicht zufällig ein Beispiel, das ein Ersatz für preg_grep ($ pattern, file ($ path)) ist? – cmc