Bing - Sitemap Ping

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gunah
    replied
    der Header wird aber per "\r\n\r\n" getrennt meine ich irgendwie war das so... bin mir gerade nicht sicher

    Leave a comment:


  • Quetschi
    replied
    *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:


  • Gunah
    replied
    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:


  • Proteus1982
    replied
    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($fp128), $m) )
                 {
                    
    $status intval$m[1] );
                    break;
                 }
              }

           
    $res fgets($fp1024);
           echo 
    "Antwort: ".$res."<br>";
              
    fclose$fp );
           }
           return( 
    $status );
        } 
    Kommt dann "Cache-Control: private" zurück... sieht nicht richtig aus. Aber es gibt auch noch nen Artikel von Bing, in dem nichts davon steht, dass es eine Antwort gibt. http://www.bing.com/community/blogs/...s-sem-101.aspx

    Weis jemand noch was darüber ?

    Leave a comment:


  • Proteus1982
    replied
    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... betet
    Last edited by Proteus1982; 03-11-2009, 10:53.

    Leave a comment:


  • Quetschi
    replied
    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.

    Hier noch die gängigen Statuscodes im Fehlerfall und eine etwas verständlichere "Übersetzung" dazu

    Leave a comment:


  • Gunah
    replied
    PHP: fgets - Manual

    Leave a comment:


  • Proteus1982
    replied
    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:


  • Jarez
    replied
    Ich weiss ja, wo mir geholfen werden kann. *fg*

    Leave a comment:


  • Quetschi
    replied
    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:


  • Jarez
    replied
    Das werde ich mir einmal ganz in Ruhe anschauen.

    Vielen Dank nochmals. ;o)

    Leave a comment:


  • Gunah
    replied
    PHP: curl_exec - Manual
    das Beispiel...

    bei setOpt muss man nur darauf dann achten: "CURLOPT_RETURNTRANSFER"

    Gruß
    Gunah

    Leave a comment:


  • Jarez
    replied
    Mit CURL habe ich noch nie was gemacht.

    Gibt es dafür einen fertigen Code Schnipsel oder einen Lösungsansatz?

    Leave a comment:


  • Quetschi
    replied
    Originally posted by Jarez View Post
    Für alle die das auch mal brauchen
    Nein, siehe Post#4 http://www.php-resource.de/forum/php...tml#post628021

    Leave a comment:


  • Jarez
    replied
    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($fp128), $m) )
                 {
                    
    $status intval$m[1] );
                    break;
                 }
              }
              
    fclose$fp );
           }
           return( 
    $status );
        } 
    Danke für Eure Hilfe !!!!

    Ich hätte da sonst noch morgen dran gesessen.

    Leave a comment:

Working...
X