Hallo zusammen,
ich tüftel sei heute Mittag an einem Problem herum und komme nicht weiter. Hoffe ihr könnt helfen.
Ich möchte Bing automatisch über Aktualisierungen meiner Seite informieren und möchte dazu XML Sitemaps nutzen. Das Erstellen der Sitemap ging einfach. Manuell kann ich diese ja ganz einfach an Bing übermitteln, in dem ich das im Browser aufrufe:
Das soll aber automatisch passieren, sobald ich die Sitemap geschrieben habe ... so wie bei Wordpress ... und ich möchte eine Fehler- bzw. Erfolgsmeldung zurück haben.
Mein Lösungsansatz:
wobei $url_xml die URL zu meiner Seitemap ist.
Code 200 ist ja der, den man bei Erfolg erhält?! Richtig?!
Leider funktioniert das so nicht und ich weiss nicht warum?! Ich bekomme immer die Meldung, dass das Pingen fehlgeschlagen ist mit dem Rückgabewert 0.
Wenn ich das so mit den Ping Daten von Google nutze, um die Sitemap an Google zu senden ... dann klappt es ohne Fehlermeldung.
Habt ihr eine Idee?
Gruß
Michael
ich tüftel sei heute Mittag an einem Problem herum und komme nicht weiter. Hoffe ihr könnt helfen.
Ich möchte Bing automatisch über Aktualisierungen meiner Seite informieren und möchte dazu XML Sitemaps nutzen. Das Erstellen der Sitemap ging einfach. Manuell kann ich diese ja ganz einfach an Bing übermitteln, in dem ich das im Browser aufrufe:
PHP-Code:
http://www.bing.com/webmaster/ping.aspx?siteMap=http://www.domain.com/sitemap.xml
Mein Lösungsansatz:
PHP-Code:
function pingBingSitemaps( $url_xml )
{
$status = 0;
$bing = 'http://www.bing.com/webmaster';
if( $fp=@fsockopen($bing, 80) )
{
$req = 'GET /ping.aspx?siteMap=' .
urlencode( $url_xml ) . " HTTP/1.1\r\n" .
"Host: $bing\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 );
}
if( 200 === ($status=pingBingSitemaps($url_xml)) )
{
$status_ping_bing = "<b>Bing Sitemap Ping:</b> erfolgreich - Status code: $status.<br>\n";
}
else
{
$status_ping_bing = "<b>Bing Sitemap Ping:</b> fehlgeschlafen - Status code: $status.<br>\n";
}
Code 200 ist ja der, den man bei Erfolg erhält?! Richtig?!
Leider funktioniert das so nicht und ich weiss nicht warum?! Ich bekomme immer die Meldung, dass das Pingen fehlgeschlagen ist mit dem Rückgabewert 0.
Wenn ich das so mit den Ping Daten von Google nutze, um die Sitemap an Google zu senden ... dann klappt es ohne Fehlermeldung.
Habt ihr eine Idee?
Gruß
Michael
Kommentar