Andy09
01-09-2003, 14:58
Hi Leute,
habe aus dem Linuxforum gerade den Tipp bekommen das ich mit meinem kleinen Problemchen hier bessere Erfolgschancen haben könnte ;)
Also als erstes, ich bin eigentlich eher ein eingefleischter ASP-Programmierer und steige gerade in PHP so HALBWEGS durch. Jetzt hab ich ein Problem. Bevor ein Link geöffnet werden soll, soll mein Skript prüfen ob es diese Seite überhaupt noch gibt. Das habe ich so realisiert erstmal...
<?php
$fp = fsockopen( "$domain", 80, &$errno, &$errdesc, 5 );
if ( ! $fp )
{
die ( "Keine Verbindung zu $domain:\nFehler: $errno\nBeschreibung: $errdesc\n" );
}
$anfrage = "GET /$seite HTTP/1.0\r\n";
$anfrage .= "Host: $domain\r\n";
$anfrage .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$anfrage .= "Accept-Language: de\r\n";
$anfrage .= "Referer: $referer \n\r\n";;
fputs ( $fp, $anfrage );
socket_set_timeout($fp, 5);
$head = fread($fp, 1024);
print "$head";
?>
Das Problem ist nur, ich kann sowohl die Methode GET als auch die Methode HEAD nehmen, es gibt scheinbar ein paar Server die senden absolut null rüber, weder ein Error, noch die angeforderte Seite. Jetzt hab ich da so die \r\n-Sachen im Verdacht, bin mir aber nicht sicher. Kann mir bitte einer helfen?!
Ich kann nur sagen WAS passiert: Bei den meisten Server wird mir brav der HEADER bzw. die ersten 1024 Zeichen rübergegeben, was mir ja schon mal ausreicht. Aber bei einigen wird mir absolut NULL zurückgegeben, fsockopen funzt einwandfrei, aber fread würde bis Weihnachten stehen bleiben bzw. bis natürlich der PHP-Timeout anschlägt.
Bitte helft mir mal auf die Sprünge ich hab auch nichts in meinen Büchern so richtig finden können :( ;)
Gruß
Andy
habe aus dem Linuxforum gerade den Tipp bekommen das ich mit meinem kleinen Problemchen hier bessere Erfolgschancen haben könnte ;)
Also als erstes, ich bin eigentlich eher ein eingefleischter ASP-Programmierer und steige gerade in PHP so HALBWEGS durch. Jetzt hab ich ein Problem. Bevor ein Link geöffnet werden soll, soll mein Skript prüfen ob es diese Seite überhaupt noch gibt. Das habe ich so realisiert erstmal...
<?php
$fp = fsockopen( "$domain", 80, &$errno, &$errdesc, 5 );
if ( ! $fp )
{
die ( "Keine Verbindung zu $domain:\nFehler: $errno\nBeschreibung: $errdesc\n" );
}
$anfrage = "GET /$seite HTTP/1.0\r\n";
$anfrage .= "Host: $domain\r\n";
$anfrage .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
$anfrage .= "Accept-Language: de\r\n";
$anfrage .= "Referer: $referer \n\r\n";;
fputs ( $fp, $anfrage );
socket_set_timeout($fp, 5);
$head = fread($fp, 1024);
print "$head";
?>
Das Problem ist nur, ich kann sowohl die Methode GET als auch die Methode HEAD nehmen, es gibt scheinbar ein paar Server die senden absolut null rüber, weder ein Error, noch die angeforderte Seite. Jetzt hab ich da so die \r\n-Sachen im Verdacht, bin mir aber nicht sicher. Kann mir bitte einer helfen?!
Ich kann nur sagen WAS passiert: Bei den meisten Server wird mir brav der HEADER bzw. die ersten 1024 Zeichen rübergegeben, was mir ja schon mal ausreicht. Aber bei einigen wird mir absolut NULL zurückgegeben, fsockopen funzt einwandfrei, aber fread würde bis Weihnachten stehen bleiben bzw. bis natürlich der PHP-Timeout anschlägt.
Bitte helft mir mal auf die Sprünge ich hab auch nichts in meinen Büchern so richtig finden können :( ;)
Gruß
Andy