Kurze Situationsbeschreibung:
Ich habe eine .txt Datei die ich mit curl einlese und per explode zeilenweise in ein array schreib.
Nun durchlaufe ich das array um jede Zeile nach bestimmten Kriterien zu durchsuchen und in Kategorien einzuordnen.
Hier ein Auszug des relevanten Codes:
Dieser Code funktioniert so weit auch einwandfrei.
Nun werden die Kriterien für diese Kategorie allerdings immer mehr und um eine rießige if Abfrage zu vermeiden wollte ich das ganze in eine weitere Schleife packen das ein array mit den Kriterien durchläuft:
Das hat so nicht funktioniert. Nachdem ich in der Manual für foreach gelesen habe, dass es bei verschachtelten foreach Schleifen zu Problemen mit dem Pointer kommen kann hab ich das ganze in eine For Schleife gepackt:
Leider funktioniert auch das nicht. Die zweite Schleife durchläuft einfach nicht das komplette array sondern nimmt immer nur das erste Element aus $searchstring
Auch wenn ich aus beiden Schleifen eine For Schleife mache besteht das gleiche Problem.
Da muss irgendwo ein dummer Denkfehler sein auf den ich einfach nicht komme.
Vielleicht findet ja hier jemand den Fehler.
Danke schonmal für hoffentlich kommende Tips.
Ich habe eine .txt Datei die ich mit curl einlese und per explode zeilenweise in ein array schreib.
Nun durchlaufe ich das array um jede Zeile nach bestimmten Kriterien zu durchsuchen und in Kategorien einzuordnen.
Hier ein Auszug des relevanten Codes:
PHP-Code:
foreach($line_arr as $line)
{
$class = "sonstiges";
if((substr_count($line, ":", 10) >= 1)
&& (strpos($line, "plugin not found!") == 0)
&& (strpos($line, "Loading ") == 0)
&& (strpos($line, " not loaded:") == 0)
&& (strpos($line, "Death Handler") == 0))
{ $class = "chat"; }
...
...
...
echo "<span class='".$class."'>".$line."<br></span>";
}
Nun werden die Kriterien für diese Kategorie allerdings immer mehr und um eine rießige if Abfrage zu vermeiden wollte ich das ganze in eine weitere Schleife packen das ein array mit den Kriterien durchläuft:
PHP-Code:
$searchstring = array("plugin not found", "Loading ", " not loaded:", "Death Handler");
foreach($line_arr as $line)
{
$class = "sonstiges";
foreach($searchstring as $searchitem)
{
if((substr_count($line, ":", 10) >= 1) && (strpos($line, $searchitem) == 0))
{
$class = "chat";
}
}
echo "<span class='".$class."'>".$line."<br></span>";
}
PHP-Code:
$searchstring = array("plugin not found", "Loading ", " not loaded:", "Death Handler");
foreach($line_arr as $line)
{
$class = "sonstiges";
for($i = 0; $i !== count($searchstring); $i++)
{
if((substr_count($line, ":", 10) >= 1) && (strpos($line, $searchstring[$i]) == 0))
{
$class = "chat";
}
}
echo "<span class='".$class."'>".$line."<br></span>";
}
Auch wenn ich aus beiden Schleifen eine For Schleife mache besteht das gleiche Problem.
Da muss irgendwo ein dummer Denkfehler sein auf den ich einfach nicht komme.
Vielleicht findet ja hier jemand den Fehler.
Danke schonmal für hoffentlich kommende Tips.
Kommentar