Seite 1 von 2
Alternativen zu fsockopen()
Verfasst: 11.06.2007 14:13
von mgutt
Hallo,
ich möchte ein Abfragescript verwirklichen, dass auf eine externe URL zugreifen soll und von dort eine Antwort erhält.
Nun brauche ich nur die Angaben 1 und 0. Also könnte ich auch problemlos Header ausgeben, wie "404 Not Found" oder "200 OK".
Gibt es Funktionen, die eigentlich jeder aktiviert hat (manche haben auch fsockopen() deaktiviert) und wo ich eben diesen 1 und 0 Status mit ermitteln kann?
Gruß
Marc
Verfasst: 11.06.2007 14:28
von larsneo
wenn man einmal von curl als alternative absieht ist vielleicht
snoopy noch einen näheren blick wert...
(allow_url_fopen ist in der tat *bäh*)
Verfasst: 11.06.2007 16:34
von mgutt
Das Problem ist, dass das Script für alle sein soll. D.h. ich kann bei denen nichts installieren. Demnach würde Snoopy rausfallen.
Bei curl gibt es ja einige Server, die die Klasse vorinstalliert haben.
Daneben haben wir dann noch fsockopen() und pfsockopen(), welche aber über Safemode = ON verboten werden. Betrifft das auch curl()?
Gibt es keine Funktion mit der man nur die "ungefährlichen" Header einlesen kann? Wie gesagt, ich könnte auch nur den Status ausgeben. Mir geht es nicht um den Inhalt auf der Zielseite (nicht unbedingt), aber ich muss zumindest einen Dateinamen angeben können (also ein Ping auf die Domain würde nicht reichen).
Derzeit sieht meine Planung folgende zu prüfende Reihenfolge vor:
1. fopen()
2. fsockopen()
3. pfsockopen() (lohnt sich Prüfung darauf dann noch?)
4. curl()
D.h. ich schreibe mein Script so, dass jede Funktion auf die Verfügbarkeit hin testet. Nur wenn Safemode auch curl() deaktiviert, könnte ich keine der Möglichkeiten nutzen.

Verfasst: 11.06.2007 16:34
von killerbees19
Wirf mal darauf einen Blick:
http://php-classes.sourceforge.net/
HTTPConnection
MfG Christian
Verfasst: 11.06.2007 16:37
von mgutt
HTTPConnection arbeiten mit fsockopen()

Verfasst: 11.06.2007 16:39
von killerbees19
Sorry, hab deinen Post gar nicht mehr gesehen...
Das schon, ist aber trotzdem praktisch das zu kennen.
Ohne fsockopen() oder CURL wirds jedenfalls meiner Meinung nach unmöglich sein, die Headerdaten zu bekommen

Ich würde mal sagen, wer alles deaktiviert hat -> Pech gehabt
MfG Christian
Verfasst: 11.06.2007 16:46
von tas2580
Zwar nicht ganz was du suchst, aber vielleicht hilft dir ja
get_meta_tags weiter.
Verfasst: 11.06.2007 16:50
von mgutt
Was haltet ihr von:
get_meta_tags()
So müsste ich bei einem 404 Status das richtige Ergebnis erhalten:
Denn get_meta_tags() produziert eine Fehlermeldung, wenn die Seite einen 404 Header sendet.
und wenn PHP5 vorhanden ist von:
get_headers()
Noch einfacher. Hier gebe ich einfach nur den HTTP Status 404 bzw. 200 entsprechend aus.
Können diese Funktionen beim Anwender ebenfalls deaktiviert worden sein?
Gruß
Edit:
@ [BTK] Tobi
Hatte ich auch gerade gefunden

Verfasst: 11.06.2007 16:53
von Jan500
hm snoopy ist doch (so wie ich das sehe) eine php classe, also du kannst die enthaltene php einfach inlcuden unf auf die class zugreifen
Jan
Verfasst: 11.06.2007 17:15
von mgutt
Jan500 hat geschrieben:hm snoopy ist doch (so wie ich das sehe) eine php classe, also du kannst die enthaltene php einfach inlcuden unf auf die class zugreifen
Jan
Stimmt. Snoopy arbeitet aber auch mit fsockopen(). Alternativ bei SSL arbeitet Snoopy mit exec() und der vorinstallierten curl-Klasse.
Aber exec() halte ich bei den meisten Servern für unwahrscheinlich, das es verfügbar wäre.
get_meta_tags() ist bisher am interessantesten für mich. Ich kann im Netz eigentlich auch kein Info finden, wo Nutzer die Funktion nicht nutzen konnten.
Ich frag mich nur, ob die Funktion ein Timeout hat
Gruß
Marc