Esiste una funzione in PHP che utilizza grep -f nomefile nei sistemi unix/linux. Se non ce n'è, le funzioni/strumenti PHP potrebbero aiutare a creare un metodo/funzione personalizzato per questo. Grazie!grep con -f come in PHP
risposta
In realtà secondo me, io direi che è il seguente:
$result = preg_grep($pattern, file($path));
Vedi preg_grep
Docs e file
Docs.
Se avete bisogno di farlo (ricorsivamente) su una serie di file, v'è anche glob
e foreach
o (Recursive
) DirectoryIterator
o il GlobIterator
Docs e non dimenticare il RegexIterator
Docs.
Esempio con SplFileObject e RegexIterator:
$stream = new SplFileObject($file);
$grepped = new RegexIterator($stream, $pattern);
foreach ($grepped as $line) {
echo $line;
}
uscita (tutte le linee di $file
contenenti $ modello):
$grepped = new RegexIterator($stream, $pattern);
foreach ($grepped as $line) {
echo $line;
}
Demo: https://eval.in/208699
È possibile combinare la funzione file_get_contens() per aprire un file e la funzione preg_match_all() per acquisire i contenuti mediante un'espressione regolare.
$file = file_get_contents ('path/to/file.ext');
preg_match_all ('regex_pattern_here', $file, $matches);
print_r ($matches);
Sto usando 'file_get_contents()' ma fallisce a intermittenza. – FractalSpace
- 1. Coda -f + grep?
- 2. veloce alternativa al grep -f
- 3. grep -f su OS X produce segfault
- 4. Informazioni su 'grep -f': modello di corrispondenza con file
- 5. grep alternativa -f per enormi file
- 6. grep -f sul file in una cartella compressa
- 7. Come grep con un elenco di parole
- 8. grep in istruzione IF
- 9. Come "grep" un flusso continuo?
- 10. php per analizzare ps aux | grep ... results
- 11. Come dividere F [A \/B] in (F [A], F [B])
- 12. coda con grep file di log remoti
- 13. Ruby grep con argomento stringa
- 14. Grep non come espressione regolare
- 15. Generics con interfacce in F #
- 16. Come grep e sostituire
- 17. ricerca inversa grep con contesto
- 18. righe di file Legge indietro (f gets) con php
- 19. uscita grep in matrice
- 20. F # ciclo continuo in F #
- 21. Come pipe tail -f in awk
- 22. Grep e Python
- 23. Come funziona grep così veloce?
- 24. Come faccio a grep per stringhe con caratteri speciali come []?
- 25. come ignorare automaticamente i file in grep
- 26. R come usare grep in if istruzione
- 27. Come "cd" in una directory dopo "grep"?
- 28. Stringa predefinita per grep-find in emacs
- 29. Come grep asterisco senza fuggire?
- 30. differenza tra grep Vs cat e grep
Mentre questo è funzionalmente equivalente, carica l'intero file in memoria, mentre la riga di comando grep non lo fa. – cmc
@cmd: Sì, se vuoi risparmiare memoria, considera [** SplFileObject **] (http://php.net/SplFileObject) e [** RegexIterator **] (http://php.net/ RegexIterator). – hakre
suona bene! ... non ti capita di avere un esempio a portata di mano che è una sostituzione drop-in per preg_grep ($ pattern, file ($ path))? – cmc