Fehler: Verbindung unterbrochen

Hallo,

ich habe mir kurz ein kleines script gebastelt, welches aber leider immer zum Fehler führt, dass die Verbindung unterbrochen sei, während des Verbindungs aufbaus (FF 3)

Naja, flush() nützt da auch nix. Und dieser Fehler tritt auch nur dann auf, wenn ich eben dieses script aufzurufen versuche…

Daich das ganze (sowieso) nur lokal mache kann die Verbindung doch eigentlich gar nicht unterbrochen werden o.0 ?

ich hoffe ihr könnt da helfen…

(achja: im script kommt der schöne teil function parse($s) { … if(…) parse($s[1][1]);} vor :smiley: )

mfg Joey

Das ist eine Frage wie “Ich hab ein Problem, könnt ihr mir die Lösung sagen?”

Dann zeig uns doch mal das script.

:smiley: klar doch:

<?php function link($tag) { echo "LINK:: ". $tag ."\r\n"; } function img($tag) { echo "IMAGE:: ". $tag ."\r\n"; } function frame($tag) { echo "FRAME:: ". $tag ."\r\n"; } function title($to) { echo "TITLE:: ". $to. "\r\n"; } function parse($s) { $s = explode(">", $s); $elem = explode(" ", str_replace("<", "", $s[0])); $s[1] = explode("</". $elem .">", $s[1], 2); switch($elem[0]) { case "a": link($s[0]); break; case "img": img($s[0]); break; case "frame": case "iframe": frame($s[0]); break; case "meta": meta($s[0]); break; case "title": title($s[1]); break; case "img": case "a": default: parse($s[1][0]); } flush(); if(strlen($s[1][1]) > 5) parse($s[1][1]); } parse(file_get_contents("test.htm")); ?>

So, nun hab ich mir ein neues script gebastelt, sehr ähnlich, aber es kommt weiter:

<?php function frame($tag) { echo "#FRAME: $tag"; } function img($tag) { echo "#IMAGE: $tag"; } function index($tag) { echo "#INDEX: $tag"; } function title($title) { echo "#TITLE: $title"; } function parse($html) { $nextTag = explode("<", $html, 2); $tag = explode(">", $nextTag[1], 2); $tag[0] = explode(" ", $tag[0]); $contents = explode("</". $tag[0][0] .">", $nextTag[1], 2); switch($tag[0][0]) { case "frame": case "iframe": frame($tag[0]); break; case "img": case "image": img($tag[0]); break; case "a": index($tag[0]); break; case "title": title($contents[0]); break; } if($tag[0][0] !== "title") parse($contents[0]); if(strlen($contents[1]) > 6) parse($content[0]); flush(); } parse(file_get_contents("test.htm")); ?>

die ausgabe beschränkt sich jedoch auf “#TITLE title>Test”…
danach wird wie gehabt abgebrochen…

an was könnte das eigentlich liegen?
es wird ja kein fehler von executions_time oder allowed_memory-size ausgegeben…
weiss jemand, wann PHP bzw apache abbricht?

mfg Joey

Darf man mal fragen, was Du da überhaupt vor hast ?

klaar dürft ihr :ps:

ich hab vor ne suchmaschine zu proggen ( :ps: ), und das soll der Bot werden…
(natürlinch werde ich den BOT nicht auf bplaced auslagern, da das ja garnet funktionieren würde)

hoffe iher helft mir trotzdem :smiley:

Ahso, dann würde Ich dir aber eher zu preg_match_all, eregi o.Ä raten.

:smiley:
ich nehm mal an, dass das nicht unbedingt viel ausmacht…

aber ich versuchs mal, wie gesacht…

mfg Joey
//edit hähä…
jetzt weiss ich wieder, wieso ich net von anfang an so gemacht hab… REG_BADPRT, was das wohl wieder heissen mag :smiley:

in der funktion parse von deinem script seh ich ein problem in der switch-verzweigung.
da fehlen einige male break; !
!coffee

Ach ja - wo denn?

Nun, da ich den code neu geschrieben hab, ist das wohl jetzt auch unwichtig…

nun geibts keine switch mehr^^ und momentan dafür eine schöne fehlermeldung ^^

Wie schon eh und je sind die RegExp nicht gerade meine Lieblinge…

“REG_EMPTY” soll mir sagen …?

hoffe es ist euch neicht zu tief^^

mfg Joey