PHP Socket aber welchen

VanHellsehn

Erfahrenes Mitglied
Hi,
So wie ich das alles in PHP verstanden habe gibt es mehrere möglichkeiten einen Socket auszuführen. Man kann zum Beispiel fsockopen() nutzen oder die curl Bibliothek. Nur welche von diesen möglichkeiten soll ich verwenden.
Hier mein Vorhaben:
Ich möchte PHP-Dateien aufrufen um dann mit dem Request zu arbeiten. Ich bin mir einen Crawler am bastelln aber nun stellt sich mit halt die Frage welche dieser möglichkeiten die beste ist um dies umzusetzten.
Wäre nett wenn ihr mir euere Meinung mit begründung geben könntet.

MfG,
Marvv
 
Das ist IMHO reine Geschmackssache. Wenn du einen "richtigen" Socket verwendest, musst du halt alles zu Fuss machen, curl gibt dir da schon einige Hilfestellungen (z.B. was Timeouts angeht).
 
Ich habe es mal mit Curl versucht weil mir diese Bibliothek sympatisch war ^^
Nur habe ich ein komisches Problem. Und zwar geht immer nur die erste anfrage.
Ich habe mir eine Klasse geschrieben die folgende Funktionen enthählt:
PHP:
    public function setUrl($uri) {
    
        $this->markup = $this->_getMarkup($uri);
        if($this->markup === NULL) 
            return false;
        else 
            return false;
    }
   
    private function _getMarkup($uri) {
        $ch = curl_init();
        curl_setopt ($ch, CURLOPT_URL, $uri);
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,6);
        $contents = curl_exec($ch);
        $header = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        if(0!=curl_errno($ch) || $header != 200) $contents = NULL;
        curl_close($ch); 
        return $contents;
    }
Aber immer wenn ich setUrl() neu aufrufe gibt die Funktion flase zurück mit dem Header 403 aber wenn ich diese URL per Browser aufrufe kann ic drauf zugreifen.
Ich verstehe dieses Problem nicht..
 
Also das sie false zurück liefert, ist jetzt mal dein Fehler ;-)

Fehler 403 bedeutet Forbidden (Verboten). Könnte es sein, das für die Seite eine Autentifizierung notwendig ist?
 
Ich weiß was der Code bedeutet ^^
Und es ist keine Autentifizierung nötig.. es ist nur eine Statische HTML-Seite.
Und das lustige ist wenn ich jetzt die URL die er als 2tes abrufen soll als erstes abrufen lasse klappt diese aber die andere nicht die als erstes geklappt hat.
Also an der Seite ansich liegt es nicht. Es muss i.was in meinem Code sein..
 
Ohh verdammt. Ich war zu doof. Danke Saftmeister ich habe die Lösung und zwar lag es Tatsache an einer anderen Funktion und zwar an der Funktion die die Links auf dieser Seite zurückgibt. Ich habe die Links jeweils mit einem <br /> zurückgegeben.. hatte ich i.wie mal aus testzwecken rein gesetzt :(

Vielen dank für die Gelduld ;)
 
Zurück