Nochmal Urls Checken mit Socketfunktion
Marko
- php
Hi,
der letzte Thread ist schon unten rausgefallen (muss mal gucken, ob die dann irgendwo unterm Schreibtisch liegen:-) ), also auf ein Neues. Ich hab die URL Check Funktion http://forum.de.selfhtml.org/archiv/2003/1/34843/#m189859 noch geringfügig erweitert, poste sie mal, vielleicht braucht das ja noch jemand irgendwann:
function checkURL( $pURL, $pVerbose=1 )
{
$http_status = -1;
$URL = parse_url( $pURL );
if( $URL[path] == '' ){
$URL[path] = '/';
}
if ($fp = fsockopen ($URL[host], 80, $errno, $errstr, 10))
{
socket_set_timeout( $fp, 10 );
$query = "HEAD ".$URL[path]." HTTP/1.0\r\nHost:".$URL[host]."\r\n\r\n";
print($query."<br>\n");
fputs ($fp,$query);
$response = trim(fgets($fp,128));
$http_status = preg_replace("/HTTP/1.. /","",$response);
$http_status = preg_replace("/ .*/","",$http_status);
if( !$pVerbose ){
do
print($response."<br>\n");
while($response = trim(fgets($fp,128)));
}
}
else{
print("Ungültige URL");
}
return $http_status;
}
Das läuft jetzt auch braucht halt seine Zeit, und mit vielen Links rennt der Webserver irgendwann in den Scripttimeout. Was haltet Ihr von der Idee das jetzt so umzuschreiben, das parallel z.B. 200 Sockets geöffnet werden, und 200 Links gleichzeitig gecheckt werden. Oder leg ich damit den Server zeitweise lahm, ich glaube die Anzahl der TCP Verbindungen ist ja beschränkt, oder ?
Gruss
Marko
Hallo Marko,
der letzte Thread ist schon unten rausgefallen (muss mal gucken, ob die dann irgendwo unterm Schreibtisch liegen:-) ), also auf ein Neues. Ich hab die URL Check Funktion http://forum.de.selfhtml.org/archiv/2003/1/34843/#m189859 noch geringfügig erweitert, poste sie mal, vielleicht braucht das ja noch jemand irgendwann:
ob die Funktion so sinnvoll ist, kann ich jetzt auf die Schnelle nicht beurteilen. Aber wenn sie sich als gut erweist, könntest du die Funktion hier verewigen, indem du einen Beitrag für die SELFHTML Tipps & Tricks schreibst (</tippstricks/>). Dort sind solche Codeschnipsel genau richtig aufgehoben.
viele Grüße
Achim Schrepfer
Sorry,
Der Link heisst natürlich http://aktuell.de.selfhtml.org/tippstricks/index.htm.
viele Grüße
Achim Schrepfer