Bild erreichbar

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bild erreichbar

    Hallo,

    ich habe ein Link (z.B. http://www.domain.de/images/bild.gif)

    Wie kann ich checken, ob das Bild aufgerufen werden kann?


    Mfg
    Benji

  • #2
    Re: Bild erreichbar

    http://www.php-resource.de/forum/sho...erreichbarkeit
    http://www.php-resource.de/forum/sho...erreichbarkeit
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Besten Dank für die Links.

      Ich wollte nun folgenden Link auf Erreichbarkeit prüfen. Gebe ich den Link im Browser ein, wird nichts gefunden.
      Das Script zeigt mir aber an, dass dies funktioniert. Wieso?

      PHP-Code:
      $ip "http://www.rauchen-und-sparen.de/pageID_2294847.html/designs/design144/color3/
      images/left.jpg"
      //ip oder host zum überprüfen

      $online=exec("ping $ip -c 1");
      // $online=exec("ping $ip -n 1");  // für WINDOZ
      if (eregi("unbekannter host"$online) || eregi("unknown host"$online)) {
          print 
      "ping nach $ip funzt nit<br>\n";
      } else {
          print 
      "ping nach $ip funzt<br>\n";


      Mfg
      Benji

      Kommentar


      • #4
        Naja, ich denke mal das man eine Datei schlecht anpingen kann.
        Der pingt wohl den Host an, und den scheint es wohl zu geben.

        Kommentar


        • #5
          Gibt es nicht noch ne andere Möglichkeit, zu überprüfen, ob das Bild erreichbar ist oder nicht?


          Mfg
          Benji

          Kommentar


          • #6
            Man, kannst du nicht lesen???

            [COLOR=crimson]http://www.php-resource.de/forum/
            showthread.php?s=&threadid=45726&highlight=erreichbarkeit
            [/COLOR]

            Kommentar


            • #7
              Schau mal hier. Hilft vielleicht


              PHP-Code:
                 function urlfind($link){
                    if(
              $link) {
                       
              $file = @fopen ($link"r");
                    }
                    if(
              $file){
                       return 
              true;
                       
              fclose($file);
                    } 
                    else {
                       return 
              false;
                    }
                 }

                 
              $link "http://www.php.net";
                 if(
              urlfind($link)){
                    echo 
              $link." existiert und ist erreichbar";
                 } 
                 else {
                    echo 
              $link." existiert nicht oder ist nicht erreichbar";
                 }

                 echo 
              "<br/>";
                 
              $link "http://www.einetestdomain.com/blaa.html";
                 if(
              urlfind($link)){
                    echo 
              $link." existiert und ist erreichbar";
                 } 
                 else {
                    echo 
              $link." existiert nicht oder ist nicht
              erreichbar"
              ;
                 } 

              Kommentar


              • #8
                TorstenJer, auch das ist nicht ganz korrekt. oft werden benutzerdefinierte 404-seiten von fopen ganz normal akzeptiert.

                wahsaga trifft's mit dem zweiten link sehr genau.

                Kommentar


                • #9
                  Ich nutze nun folgende Funktion:

                  PHP-Code:
                  function phpLinkCheck($url$r FALSE)
                  {
                    
                  $url trim($url);
                    if (!
                  preg_match("=://="$url)) $url "http://$url";
                    
                  $url parse_url($url);
                    if (
                  strtolower($url["scheme"]) != "http") return FALSE;

                    if (!isset(
                  $url["port"])) $url["port"] = 80;
                    if (!isset(
                  $url["path"])) $url["path"] = "/";

                    
                  $fp fsockopen($url["host"], $url["port"], &$errno, &$errstr30);

                    if (!
                  $fp) return FALSE;
                    else
                    {
                      
                  $head "";
                      
                  $httpRequest "HEAD "$url["path"] ." HTTP/1.1\r\n"
                                    
                  ."Host: "$url["host"] ."\r\n"
                                    
                  ."Connection: close\r\n\r\n";
                      
                  fputs($fp$httpRequest);
                      while(!
                  feof($fp)) $head .= fgets($fp1024);
                      
                  fclose($fp);

                      
                  preg_match("=^(HTTP/d+.d+) (d{3}) ([^\r\n]*)="$head$matches);
                      
                  $http["Status-Line"] = $matches[0];
                      
                  $http["HTTP-Version"] = $matches[1];
                      
                  $http["Status-Code"] = $matches[2];
                      
                  $http["Reason-Phrase"] = $matches[3];

                      if (
                  $r) return $http["Status-Code"];

                      
                  $rclass = array("Informational""Success",
                                      
                  "Redirection""Client Error",
                                      
                  "Server Error");
                      
                  $http["Response-Class"] = $rclass[$http["Status-Code"][0] - 1];

                      
                  preg_match_all("=^(.+): ([^\r\n]*)=m"$head$matchesPREG_SET_ORDER);
                      foreach(
                  $matches as $line$http[$line[1]] = $line[2];

                      if (
                  $http["Status-Code"][0] == 3)
                        
                  $http["Location-Status-Code"] = phpLinkCheck($http["Location"], TRUE);

                      return 
                  $http;
                    }
                  }
                  $test phpLinkCheck($host); 
                  Dabei erhalte ich folgende Ausgabe:
                  Array
                  (
                  [Status-Line] =>
                  [HTTP-Version] =>
                  [Status-Code] =>
                  [Reason-Phrase] =>
                  [Response-Class] =>
                  [Date] => Tue, 19 Apr 2005 12:10:36 GMT
                  [Server] => Apache/1.3.29 (Unix)
                  [Connection] => close
                  [Content-Type] => text/html
                  )

                  Wie weiss ich nun ob das Bild erreichbar ist oder nicht?

                  Ich habe mal einen korrekten und einen falschen Link verwendet.
                  Aber bei [Connection] => close erhalte ich immer das.


                  Mfg
                  Benji

                  Kommentar


                  • #10
                    wie sieht die ausgabe aus, wenn du z.b. http://www.php-resource.de/images/headerg1x1.gif übergibst?

                    Kommentar


                    • #11
                      Dann erhalte ich die Ausgabe:

                      Array
                      (
                      [Status-Line] =>
                      [HTTP-Version] =>
                      [Status-Code] =>
                      [Reason-Phrase] =>
                      [Response-Class] =>
                      [Date] => Tue, 19 Apr 2005 12:20:36 GMT
                      [Server] => Apache
                      [Last-Modified] => Tue, 10 Sep 2002 13:56:23 GMT
                      [ETag] => "3240ad-1b1f-3d7dfa07"
                      [Accept-Ranges] => bytes
                      [Content-Length] => 6943
                      [Connection] => close
                      [Content-Type] => image/gif
                      )

                      Kommentar


                      • #12
                        Da es sich bei dir ausschließlich um Bilder handelt, werte den Content-Type Schlüssel aus:
                        Original geschrieben von Benji
                        Array
                        (
                        [Content-Type] => image/gif
                        )
                        => image/... == Bild
                        => text/html == kein Bild


                        preg_match oder strpos sollten dir behilflich sein.

                        Kommentar


                        • #13
                          Und was mache ich dann wenn ich den Schlüssel ausgewertet habe?


                          Mfg
                          Benji

                          Kommentar


                          • #14
                            die antwort auf deine aller erste frage wissen.

                            Kommentar

                            Lädt...
                            X