| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

03-11-2009, 13:26
|
|
Gunah
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 87
|
|
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;
}
}
while (!feof($fp))
{
$res .= fgets($fp, 4096);
}
$res = explode("\r\n\r\n",$res,2);
$res = end($res);
echo $res;
fclose($fp);
}
return($status);
}
gl
|

03-11-2009, 13:27
|
|
Proteus1982
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 8
|
|
Man kann auch schreiben:
PHP-Code:
return($status.$res);
, dann kommt auch nur das "Thanks for submitting your sitemap" + das 200 vom Script.
Hilft aufjedenfall in so fern weiter, dass man bestätigt bekommt, dass die Sitemap eingegangen ist. 200 sagt ja nur aus, dass das Ziel erreichbar ist, aber nicht ob die Sitemap übertragen wurde...
|

03-11-2009, 13:32
|
|
Proteus1982
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 8
|
|
Zitat:
Zitat von Gunah
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; } } while (!feof($fp)) { $res .= fgets($fp, 4096); } $res = explode("\r\n\r\n",$res,2); $res = end($res); echo $res; fclose($fp); } return($status); }
gl
|
Habe ich mal ausprobiert, läuft und gibt aus: Thanks for submitting your sitemap
Dann ist das ganze andere Response-Gedöns weg, keine Ahnung ob man das sonst noch gebrauchen kann.
|

03-11-2009, 13:33
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Zitat:
Zitat von Proteus1982
Man kann auch schreiben:
PHP-Code:
return($status.$res);
, dann kommt auch nur das "Thanks for submitting your sitemap" + das 200 vom Script.
Hilft aufjedenfall in so fern weiter, dass man bestätigt bekommt, dass die Sitemap eingegangen ist. 200 sagt ja nur aus, dass das Ziel erreichbar ist, aber nicht ob die Sitemap übertragen wurde...
|
Übertragen wird die Sitemap sowieso nicht - die requestet der Bot dann schon von deiner Seite, wenn er grad Zeit dafür hat. Und die Ping-APIs sind IMHO so eingerichtet, dass ein 200 nur geliefert wird, wenn die Url zur Sitemap einwandfrei übertragen wurde.
Aktualisieren einer XML-Sitemap - Webmaster/Website-Inhaber-Hilfe
Wird bei Bing nicht anders sein.
|

03-11-2009, 13:41
|
|
Gunah
Registrierter Benutzer
|
|
Registriert seit: Oct 2009
Beiträge: 87
|
|
@ Quetschi Bing sendet immer 200 selbst, wenn man total den Müll reinschreibt...
genauso wie der Text, der bleibt immer gleich...
bei ASK ist es genauso, nur wird hier ein Fehlertext zurückgegeben:
Code:
http://submissions.ask.com/ping?sitemap=dwada
|

03-11-2009, 13:42
|
|
Proteus1982
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 8
|
|
Zitat:
Zitat von Quetschi
Übertragen wird die Sitemap sowieso nicht - die requestet der Bot dann schon von deiner Seite, wenn er grad Zeit dafür hat. Und die Ping-APIs sind IMHO so eingerichtet, dass ein 200 nur geliefert wird, wenn die Url zur Sitemap einwandfrei übertragen wurde.
Aktualisieren einer XML-Sitemap - Webmaster/Website-Inhaber-Hilfe
Wird bei Bing nicht anders sein.
|
Ja hab mich falsch ausgedrückt :Man sieht ob der sitemap-ping erfolgreich war
Zu dem Doc. von Google: Wundert mich echt ein wenig, dass der Statuscode die erreichbarkeit der Sitemap meint. Dachte erst es sagt, dass der fsocket klar gekommen ist. Aber das macht ja die Abfrage if(!$fp) woar ?
|

03-11-2009, 13:49
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Ich werd nicht mehr - Google ist von den Dreien die einzige SuMa, die den Ping vernünftig gelöst hat bzw. wenigstens nen 400 sendet, wenn es sich um keine syntaktisch korrekte Url handelt.
Bei Bing nutzt euer gefrickel aber sowieso nix, weil hier auch die Message im Content immer die gleiche ist.
|

03-11-2009, 13:53
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Zitat:
Zitat von Proteus1982
Zu dem Doc. von Google: Wundert mich echt ein wenig, dass der Statuscode die erreichbarkeit der Sitemap meint. Dachte erst es sagt, dass der fsocket klar gekommen ist. Aber das macht ja die Abfrage if(!$fp) woar ?
|
Die Erreichbarkeit wird nicht überprüft denke ich - es wird lediglich eine syntaktisch korrekte Url akzeptiert - ansonsten spricht wohl nichts dagegen, entsprechende Statuscodes zu senden, wenn der Request nicht wie erwartet aussieht und von daher die einzig vernünftige Implementierung von so einem Service (zumindest mit den anderen beiden verglichen).
|

03-11-2009, 13:55
|
|
Proteus1982
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 8
|
|
@ Quetschi: Is ja scheisse. Aber mir gehts auch weniger um Bing. Bing hat auch meinen Seiten vllt nen Anteil von 1%. Worauf ich eigentlich hinaus will ist der Google Blog Ping: Google Blog Search Help
Habe nen Selfmade Blogscript, welches aber z.B. Wordpress völlig unterlegen ist, nur weil das Teil noch nicht Pingen kann. Die Blogger klauen meine Texte und setzen nen ing ab, und zack, bin ich der doofe, weil Google dann den Blog listet, aber nicht mich - Thema Double Content durch externe Seiten.
Jetzt die Frage: Lässt sich das was google da in dem Dokument schreibt mit diesem Prinzip (fsocket) umsetzt ? Das Thema RPC ... sagt mir kaum was, fsocket hab ich jetzt einiger massen verstanden.
|

03-11-2009, 14:48
|
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 2.759
|
|
Ja - allerdings muss hier tatsächlich der Response-Content verarbeitet werden. Da das alles aber im Form von Xml daherkommt, ist so etwas relativ leicht mit PHP-Bordmitteln wie z.B. PHP: DOM - Manual zu bewerkstelligen.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|