Zitat:
Zitat von RamonaS
... Ok das funktioniert so wunderbar:
PHP-Code:
<?php
$str='Das ist ein ganzgeheimer Text'; $arr=array('eins','zwei','geheim','vier');
echo "<b>stripos & in_array - Arrayelement in einem String finden</b><br />\n";
foreach($arr as $val)
{$pos=stripos($str,$val);
if($pos!==false) {echo "Arrayelement <b>'$find'</b> wurde in <b>'$str'</b> an Position <b>$pos</b> gefunden<br />";}
else {echo "Arrayelement <b>'$find'</b> wurde NICHT in <b>'$str'</b> gefunden<br />";}
}
?>
Jetzt habe ich noch eine Frage zu Geschwindigkeit:
Ist das die schnellste möglichkeit die es in PHP gibt?
|
Sicher nicht. Es gibt immer Möglichkeiten zur Optimierung. Preg_match('/(?:...|...)/') ist schneller als ein preg_match() in 'ner foreach()-Schleife. Preg_match('/.../i') ist schneller als stripos(). Strpos() ist schneller als stripos() usw. ...
Um die optimalste Variante herauszufinden, musst du halt mit brauchbaren Beispieldaten Messungen durchführen.
Zitat:
|
Ich muß einige Dateien damit durchsuchen, die sind teilweise bis 200-300 MB groß!
|
Warum verwendest du dann PHP?

Wie liegen die Daten vor?
Wie bekommst du sie von der Festplatte in den Hauptspeicher?
Ist es möglich, die Daten in eine Datenbanktabelle zu bekommen? (Selbst SQLite dürfte effizienter suchen als PHP.)