tester: Hilfe benötigt beim komplexeren Datei-einlesen...

Beitrag lesen

moin,
hab ne datei, die ziemlich groß is und verarbeitet werden soll.
hierfür würde ich nun gerne die datei blockweise einlesen.
also verwende ich folgenden code:
do
{
        do
        {
            $data=fgets($xmlConn,32);
            if(strlen($data)==0)
                die("File zu kurz.");//break;
            $xmlFeed.=$data;
        }while(strpos($xmlFeed,"</SchemaCategory>")===false);
       //...
}feof($xmlConn);

nun soll jedoch nicht einfach das, was u.u. zu viel eingelesen wurde bei den jeweils 32 zeichen, verloren gehen, sondern beim nächsten durchgang der äußeren schleife wieder verwendet werden.
also hab ich mir das so gedacht:
            if(strpos($xmlFeed,'</SchemaCategory>')===false)
             $xmlFeed=substr(strstr($xmlFeed,'</SchemaCategory>'),strlen('</SchemaCategory>')-1);

damit sollte ja das über die grenzposition(</SchemaCategory>) hinausgeht, wieder der nächsten verarbeitung dienen.

aber leider scheint das nicht so zu funktionieren, wie geplant war :-(

und das schlimmste ist: ich weiß nicht warum bzw wo ein logischer fehler liegt!

daher bitte ich um Eure hilfe
und sag schonmal danke