hmmmm. Dazu musste ich mir erstemal angucken, was du da überhaupt treibst und nicht nur überfliegen
Dazu muss die Logik etwas verändert werden. Diese Zeile:
Code:
$topic = substr($gefunden2,0,strpos($gefunden2,'</font></td></tr>'));
ist etwas blöd, weil du eben genau hier davon ausgehst, dass du es schon direkt kriegst. Du könntest genau an dieser Stelle alles so abwandeln, dass du erst
prüfst, ob du denn das Ende </font> usw. schon bekommen hast. Wenn nein, nimmst du erst einmal alles mit und guckst dann eine Zeile weiter.
Würde dann etwa auf ungefähr folgendes hinauslaufen:
Code:
$topic = '';
$pos = strpos($gefunden2,'</font></td></tr>');
while ($pos === false && !feof($file2))
{
$topic.=$gefunden2;
$gefunden2 = fgets($file2, 4096);
}
if (!feof($file2))
{
$topic.=substr($gefunden2,0,$pos);
}
Ansonsten noch zwei weitere Hinweise: Zum einen würde ich ncoh etwas mehr
prüfen. Von C ausgehend ein "if ($topic)" zu machen, ist nett, aber bei PHP so nicht immer gut. Teste am besten wie in meinem Beispiel, ob strpos auch beim ersten
Prüfen bereits false zurückliefert. (Mit drei Gleichheitszeichen, wichtig!!!). Und erst wenn du das einführende <TD usw. gefunden hast, solltest du weiter machen.
Der zweite Hinweis ist eher optional. Aber sei dir bewusst, dass du mit diesem Verfahren Probleme kriegst, falls du einmal mehr als 4096 Zeichen in einer Zeile hast und es zufällig einmal genau beim Suchstring (dem Beginn- Suchmuster oder End- Suchmuster) abgeschnitten wird.