Befehl zum testen ob URL korrekt ist ...

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

  • #16
    Funktion zum testen von Url von PHP fsockopen
    PHP-Code:
    function url_validate$link )
        {
            
    $url_parts = @parse_url$link );

            if ( empty( 
    $url_parts["host"] ) ) return( false );

            if ( !empty( 
    $url_parts["path"] ) )
            {
                
    $documentpath $url_parts["path"];
            }
            else
            {
                
    $documentpath "/";
            }

            if ( !empty( 
    $url_parts["query"] ) )
            {
                
    $documentpath .= "?" $url_parts["query"];
            }
     
            
    $host $url_parts["host"];
            
    $port $url_parts["port"];
            
    // Now (HTTP-)GET $documentpath at $host";

            
    if (empty( $port ) ) $port "80";
            
    $socket = @fsockopen$host$port$errno$errstr30 );
            if (!
    $socket)
            {
                return(
    false);
            }
            else
            {
                
    fwrite ($socket"HEAD ".$documentpath." HTTP/1.0\r\nHost: $host\r\n\r\n");
                
    $http_response fgets$socket22 );

                if ( 
    ereg("200 OK"$http_response$regs ) )
                {
                    return(
    true);
                    
    fclose$socket );
                } else
                {
     
    //                echo "HTTP-Response: $http_response<br>";
                    
    return(false);
                }
            }
        } 
    Offe
    Zuletzt geändert von Offe1; 28.02.2004, 12:15.

    Kommentar


    • #17
      also..

      also vielen dank für den Tipp mit fsockenopen

      das hat geklappt, klappt allerdings ausschließlich bei SEiten angaben wie z.B.

      www.ebay.de

      aber auch nicht bei http://www.ebay.de

      geschweige denn bei http://www.dateiname.de/datei.html

      dahingegen funktionierte das andere nur bei direkten DAtei angaben also

      http://blabla.de/blabla.html

      aber nicht bei http://www.bla.de
      oder www.bla.de

      also irgendwie ist alles nicht so ultimativ.
      ich brauch in Befehl der mit
      http:// so wie mit direkten DAteiangaben umgehen kann

      Gruß, ginod

      PS: ich habe gesucht ;-)
      schau nicht zurück, du lebst nur einmal

      Kommentar


      • #18
        ...

        hi,
        habe ich was falsch gemacht warum hilft mir keiner mehr ??

        ich meine gibts noch ne Möglichkeit das fsockopen auch sachen anpingen kann die jetzt keine IP sind oder eine www.ihredomain.de URL

        sondern auch direkte Dateien wie z.B. http://www.homepage.de/datei.index.html

        ??

        ansonsten wäre das in bissle doof
        schau nicht zurück, du lebst nur einmal

        Kommentar


        • #19
          parse url() hilft vielleicht...
          [color=red]Parse error: parse error, unexpected T_STRING in signature.php on line 47[/color]

          Kommentar


          • #20
            Möglichkeit das fsockopen auch sachen anpingen kann die jetzt keine IP
            Ping steht für Paket Internet Groper und ist das meistgenutzte Tool um eine Netzwerkverbindung zu einer anderen Station zu testen.
            Bei der Ausführung des Befehls ping wird ein ICMP-Paket vom Typ ICMP Echo Request an die Netzwerk-Station gesendet. Wenn die Station des ICMP-Paket empfangen hat, sendet sie ein ICMP-Paket vom Typ ICMP Echo Reply zurück.

            --> Ping geht nur auf einen Host und nicht auf eine Datei!

            für sowas nehme ich wget.

            Offe

            Kommentar


            • #21
              ...

              boor ich flipp noch aus einmal ping einmal fsockopen, fopen, parse url .

              Nun gut also ich habe es jetzt so gemacht ich öffne eine Datei mittels fsockopen.
              dann mach ich ein fgets (wget habe ich nicht gefunden) auf den Pfad nachdem er geöffnet wurde.
              doch irgendwie klappts net so
              PHP-Code:
              $handle fsockopen ("http://www.url.de/datei.dat""r");

                 
              $buffer fgets($handle);
                
               if(!
              $buffer)
               {
               echo
              "online";
               }
               else
               {
               echo
              "offline";
               } 
              Also der fügt in die Varable handle den geöffnet pfad
              dann kommt in die $variable Buffer ein fgets befehl
              und dann habe ich in if befehl gemacht ob online oder nicht
              habe jetzt keine ahnung ob das richtig ist

              außerdem was bedeutet bitte das ! vor der Variable ?? habe das nur so übernommen bin ja noob


              PS: ich musste den Code natürlich umformen bei PHP.net hat der Code mir nur Fehlermeldungen gebracht
              schau nicht zurück, du lebst nur einmal

              Kommentar


              • #22
                außerdem was bedeutet bitte das ! vor der Variable ??
                bedeutet Nicht. Ist also eine Negierung.

                Offe

                Kommentar


                • #23
                  ...

                  ja gut und warum macht der jetzt ne Fehlermeldung in der Zeile wo
                  das fgets steht ??

                  *ich weiß ich nerve ^^*
                  schau nicht zurück, du lebst nur einmal

                  Kommentar


                  • #24
                    warum sagst du tröte nicht welche?

                    Kommentar


                    • #25
                      ...

                      ja also

                      Warning: Wrong parameter count for fgets() in /home/www/web29/html/dogsearch/ifonlinetest.php on line 26
                      schau nicht zurück, du lebst nur einmal

                      Kommentar


                      • #26
                        warum nicht gleich so!

                        Und jetzt guckst du einfach mal ins Manual und zählst mal die Pflichtparameter die dort angegeben sind und zählst wie viele au angegeben hast!

                        Kommentar


                        • #27
                          ...

                          also die sagen folgendes

                          Anmerkung: Der Parameter length wurde in PHP 4.2.0 optional. Ist er nicht angegeben, wird als Zeilenlänge 1024 angenommen. Seit PHP 4.3 wird bei einem fehlenden Parameter length so lange gelesen, bis das Ende der Zeile erreicht ist. Ist der Großteil der Zeilen in der Datei größer als 8 kB, ist es effizienter, wenn Sie die maximale Zeilenlänge spezifizieren.

                          $handle = fopen ("/tmp/inputfile.txt", "r");
                          while (!feof($handle)) {
                          $buffer = fgets($handle, 4096);
                          echo $buffer;
                          }
                          fclose ($handle);

                          ich habe das 4096 weg gemacht. Nun habe ich es wieder eingefügt und er sagt

                          -----------
                          Warning: Supplied argument is not a valid File-Handle resource in /home/www/web29/html/dogsearch/ifonlinetest.php on line 26
                          ---------------
                          schau nicht zurück, du lebst nur einmal

                          Kommentar


                          • #28
                            ich habe das 4096 weg gemacht. Nun habe ich es wieder eingefügt und er sagt

                            -----------
                            Warning: Supplied argument is not a valid File-Handle resource in /home/www/web29/html/dogsearch/ifonlinetest.php on line 26
                            ich denke nicht, dass das eine was mit dem anderen zu tun hat. schließlich bemeckert er den handler, der anscheinend nicht gültig ist.

                            Kommentar


                            • #29
                              ....

                              PHP-Code:
                              $handle fsockopen ("http://www.meinehomepage.de/meinedatei.dat""r"); 
                              naja so sieht meine Handle Zeile aus ich weiß nicht was ich da alles angeben muss aber es müsste doch alles angegeben sein, also ich habs genauso wie bei php.net
                              schau nicht zurück, du lebst nur einmal

                              Kommentar


                              • #30
                                eben hast du noch was anderes gepostet.

                                es wäre ja mal nicht schlecht, wenn du mal den KOMPLETTEN AKTUELLEN Code postest!

                                Kommentar

                                Lädt...
                                X