Bing - Sitemap Ping
Collapse
X
-
der Header wird aber per "\r\n\r\n" getrennt meine ich irgendwie war das so... bin mir gerade nicht sicher
-
*seufz* der Response-Code ist immer die erste Zeile des Response-Headers und die wird schon in der while-Schleife vor deinem Code ausgelesen.
Leave a comment:
-
dir wird nur die erste Zeile Ausgegeben:
Beispiel aus der Doku
Code:$handle = fopen ("/tmp/inputfile.txt", "r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); echo $buffer; } fclose ($handle);
Leave a comment:
-
So, hab das Script nun mal um zwei Zeilen ergänzt:
Vor dem fclose:
$res = fgets($fp, 1024);
echo "Antwort: ".$res."<br>";
PHP Code:function pingBingSitemaps( $url_xml )
{
$status = 0;
$fp = @fsockopen("www.bing.com", 80);
if (!$fp)
{
echo "$errstr ($errno)<br />\n";
}
else
{
$req = 'GET /webmaster/ping.aspx?siteMap=' .
urlencode( $url_xml ) . " HTTP/1.1\r\n" .
"Host: www.bing.com\r\n" .
"User-Agent: Mozilla/5.0 (compatible; " .
PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
"Connection: Close\r\n\r\n";
fwrite( $fp, $req );
while( !feof($fp) )
{
if( @preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m) )
{
$status = intval( $m[1] );
break;
}
}
$res = fgets($fp, 1024);
echo "Antwort: ".$res."<br>";
fclose( $fp );
}
return( $status );
}
Weis jemand noch was darüber ?
Leave a comment:
-
Ah.. ich Idiot, da unten steht doch return status ... omg
Hatte vergessen echo pingBingSitemaps(sitemap url) zu schreiben (nur function aufgerufen ohne das echo).
Edit: Und es kommt auch der Header 200 ... jetz noch die Antwort von Bing auswerten... da wird sicher was kommen von wg. THX for your Webshit :P
So jetzt probiere ich die fget function aus... betetLast edited by Proteus1982; 03-11-2009, 10:53.
Leave a comment:
-
Wenn du dir das Script vom Threadersteller ansiehst, siehst du, dass es den HTTP-Response Status-Code auswertet. Ist dieser Wert gleich 200, dann ist alles in Butter. Konnte der Request nicht richtig verarbeitet werden, war fehlerhaft oder was auch immer, dann wird der angepingte Server mit einem anderem Statuscode antworten.
Hiernoch die gängigen Statuscodes im Fehlerfall und eine etwas verständlichere "Übersetzung" dazu
Leave a comment:
-
Frage
Hallo zusammen,
ich fuchse mich gerade erst in diese fsocket Funktionen rein. Das Thema finde ich sehr interessant, auch im Zusammenhang mit anderen Diensten wie Google Blog Ping usw.
Aber hierzu: Habe das Script mal ausprobiert. Es gibt ja soweit ich sehen kann keine Ausgabe über den Rückgabewert. Wie kann man rausfinden, ob der ganze Prozess fehlerfrei ablief ? Gibt es eine Bestätigung von Bing ? Habs ja ausprobiert, das Script lief ohne Probleme durch, aber ich weis halt nicht, obs wirklich geklappt hat. Bei Google gibt es immer eine Response "Thanks for Ping" oder sowas in der Art.
MfG
Leave a comment:
-
PHP: cURL Funktionen - Manual - dort findest du alles was du brauchst.
Der Fairness halber sei gesagt, dass ich mit CURL schon mal so meine Problemchen wegen Bugs hatte - also eine relativ aktuelle libcurl sollte es schon sein.
Leave a comment:
-
Das werde ich mir einmal ganz in Ruhe anschauen.
Vielen Dank nochmals. ;o)
Leave a comment:
-
PHP: curl_exec - Manual
das Beispiel...
bei setOpt muss man nur darauf dann achten: "CURLOPT_RETURNTRANSFER"
Gruß
Gunah
Leave a comment:
-
Mit CURL habe ich noch nie was gemacht.
Gibt es dafür einen fertigen Code Schnipsel oder einen Lösungsansatz?
Leave a comment:
-
Originally posted by Jarez View PostFür alle die das auch mal brauchen
Leave a comment:
-
Ich sag es ja ... eine Pause ist notwendig ...
Da macht man echt die schlimmsten und dümmsten Fehler ...
Habe den Code noch mal geändert und nun funktioniert es auch.
Für alle die das auch mal brauchen:
PHP Code:function pingBingSitemaps( $url_xml )
{
$status = 0;
$fp = @fsockopen("www.bing.com", 80);
if (!$fp)
{
echo "$errstr ($errno)<br />\n";
}
else
{
$req = 'GET /webmaster/ping.aspx?siteMap=' .
urlencode( $url_xml ) . " HTTP/1.1\r\n" .
"Host: www.bing.com\r\n" .
"User-Agent: Mozilla/5.0 (compatible; " .
PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
"Connection: Close\r\n\r\n";
fwrite( $fp, $req );
while( !feof($fp) )
{
if( @preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m) )
{
$status = intval( $m[1] );
break;
}
}
fclose( $fp );
}
return( $status );
}
Ich hätte da sonst noch morgen dran gesessen.
Leave a comment:
Leave a comment: