Alternativen zu fsockopen()

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Alternativen zu fsockopen()

Beitrag 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
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
larsneo
Mitglied
Beiträge: 2622
Registriert: 07.03.2002 15:23
Wohnort: schwäbisch gmünd
Kontaktdaten:

Beitrag 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*)
gruesse aus dem wilden sueden
larsneo
..::[krapohl.net]::..
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag 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. :(
Zuletzt geändert von mgutt am 11.06.2007 16:38, insgesamt 2-mal geändert.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Beitrag von killerbees19 »

Wirf mal darauf einen Blick: http://php-classes.sourceforge.net/
HTTPConnection


MfG Christian
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

killerbees19 hat geschrieben:Wirf mal darauf einen Blick: http://php-classes.sourceforge.net/
HTTPConnection


MfG Christian
HTTPConnection arbeiten mit fsockopen() ;)
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
killerbees19
Mitglied
Beiträge: 1185
Registriert: 09.05.2006 17:33
Wohnort: Wien (Österreich)
Kontaktdaten:

Beitrag 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 :lol:


MfG Christian
» Real programmers don't comment. If it was hard to write, it should be hard to understand!
Benutzeravatar
tas2580
Ehemaliges Teammitglied
Beiträge: 3029
Registriert: 01.07.2004 05:42
Wohnort: /home/tas2580
Kontaktdaten:

Beitrag von tas2580 »

Zwar nicht ganz was du suchst, aber vielleicht hilft dir ja get_meta_tags weiter.
Heute ist ein guter Tag um dein Forum zu testen.
Ehemaliger Benutzername: [BTK] Tobi
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Was haltet ihr von:

get_meta_tags()
So müsste ich bei einem 404 Status das richtige Ergebnis erhalten:

Code: Alles auswählen

if ( !@get_meta_tags('http://www.example.com/') )
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 ;)
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Jan500
Ehemaliges Teammitglied
Beiträge: 4199
Registriert: 01.03.2003 21:32
Wohnort: Hamburg
Kontaktdaten:

Beitrag 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
"Life begins at 40 Knots...!" :D
kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag 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 :roll:

Gruß
Marc
Zuletzt geändert von mgutt am 11.06.2007 17:22, insgesamt 2-mal geändert.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „Coding & Technik“