linkchecker mit fsockopen

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

  • #16
    Original geschrieben von Winner
    OffTopic:

    meine Ansicht - dem Noob ein Stück Code zu geben, das er dann verstehen und eben noch ergänzen muss.

    OffTopic:

    man kann natürlich das Stück Code von den User Notes kopieren und posten, aber wozu soll denn das gut sein, wenn man damit nur die halbe Infos liefert, anstatt die ganze, indem man den Link angibt?

    Kommentar


    • #17
      OffTopic:

      Stell Dir vor jeder Noob ist ein Hund.
      Normalerweiße ist er faul, liegt in der Sonne und lässt sich alles an die Hinterbeie tragen.
      Doch, wenn der Geruch von Fleisch in der Luft liegt wird er plötzlich ganz aufgeregt und ist bereit auch selbst etwas für seine Belohnung zu arbeiten.

      So ist das auch mit den Menschen. Zuerst musst Du sie motivieren, dann gehen sie ihren Weg auch mal 3 Meter allein. Das sehe ich allzuoft im Betrieb, ode bei Praktikanten, die wir haben: "Und jetzt, und dann". Gib ihnen etwas, einen kleinen Erfolg und dann lasse sie selber wühlen.


      Wenn die Tatsachen nicht mit der Theorie übereinstimmen –

      um so schlimmer für die Tatsachen.

      Kommentar


      • #18
        also wenn hier so über den noob hergezogen wird will ich auch mal was dazu sagen:

        also ich habe fast 3 arbeitstage versucht, was hinzubekommen, habe auch viel gelesen, leider kenn ich mich mich noch nich gut aus mit php, und ich finde ein forum sollte dazu da sein, das auch anfängern geholfen wird

        habe es leider immer noch nicht geschafft, was vernünftiges zu basteln, und probiere das ganze jetzt mal in perl zu machen...

        thx 4 help

        Kommentar


        • #19
          PHP-Code:
          <?php
          @ob_start'ob_gzhandler' );
          ?>
          <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                 "http://www.w3.org/TR/html4/loose.dtd">
          <html lang="en">
            <head>
              <meta http-equiv="Pragma" content="no-cache">
              <meta http-equiv="Revisit-After" content="5 Days">
              <meta http-equiv="content-type" content="text/html; charset=utf-8">
              <title>Link checker</title>
            <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" alink="#0000FF" vlink="#0000FF">
          <?php
             
          function GetUrls$url ) {
               
          $info  = @parse_url$url );
               
          $fp    = @fsockopen$info["host"], 80$errno$errstr10 );
               if ( !
          $fp ) {
                  return 
          false;
               } else {
                  if( empty( 
          $info["path"] ) ) {
                     
          $info["path"] = "/";
                  }
                  if( isset( 
          $info["query"] ) ) {
                       
          $query "?".$info["query"]."";
                  } else {
                       
          $query "";
                  }
                  
          $out  "GET ".$info["path"]."".$query." HTTP/1.0\r\n";
                  
          $out .= "Host: ".$info["host"]."\r\n";
                  
          $out .= "Connection: close \r\n";
                  
          $out .= "User-Agent: free-php_org_uk_link_checker/1.0\r\n\r\n";
                  
          fwrite$fp$out );
                  
          $html '';
                  while ( !
          feof$fp ) ) {
                      
          $html .= fread$fp8192 );
                  }
                  
          fclose$fp );
               }
               
          $pieces explode"\r\n\r\n"$html,);
               
          $html   =  $pieces[1];
               unset( 
          $pieces );
               
          preg_match_all("|href\=\"?'?`?([[:alnum:]:?=&@/;._-]+)\"?'?`?|i"$html, &$matches);
               
          $links = array();
               
          $ret $matches[1];
               for(
          $i=0;isset($ret[$i]);$i++) {
                  if(
          preg_match("|[url]http://[/url][[:alnum:]:?=&@/;._-]+|i",$ret[$i])) {
                      
          $links[] = $ret[$i];
                  } elseif(
          preg_match("|^/(.*)|i",$ret[$i])) {
                      
          $links[] = $info["host"]."".$ret[$i];
                  } elseif(
          preg_match("/^mailto:(.*)/i",$ret[$i])) {
                  }
               }
               return 
          $links;
             }
             
             
             
             function 
          GetUniqueUrls$url ) {
               
          $urls GetUrls$url );
               if ( !
          $urls ){
                 return 
          false;
               }
               
          $uurls = array();
               for( 
          $i=0;isset($urls[$i]);$i++ ) {
                 if(!
          in_array($urls[$i], $uurls)) {
                   
          $uurls[] = $urls[$i];
                 }
               }
               return 
          $uurls;
             }
          function 
          getheaders($url) {
            
          $info = @parse_url($url);
            
          $fp = @fsockopen($info["host"], 80$errno$errstr10);
            if (!
          $fp) {
               print 
          "Error: that url you entered seems not to exist.\n";
            } else {
               if(empty(
          $info["path"])) {
                  
          $info["path"] = "/";
               }
               if(isset(
          $info["query"])) {
                    
          $query "?".$info["query"];
               } else {
                    
          $query "";
               }
               
          $out  "GET ".$info["path"]."".$query." HTTP/1.0\r\n";
               
          $out .= "Host: ".$info["host"]."\r\n";
               
          $out .= "Connection: close \r\n";
               
          $out .= "User-Agent: free-php_org_uk_link_checker/1.0\r\n\r\n";
               
          fwrite($fp$out);
               
          $html '';
               
          $html .= fread($fp1455);
               @
          fclose($fp);
            }
            
          $pieces explode("\r\n\r\n"$html,2);
            
          $headerinfo =  $pieces[0];
            unset(
          $pieces);
            return 
          $headerinfo;
          }
          function 
          getsatuscode($header) {
            
          $headers explode"\r\n"$header );
            for( 
          $i=0;isset( $headers[$i] );$i++ ) {
              if( 
          preg_match"/HTTP\/[0-9A-Za-z +]/i",$headers[$i] ) ) {
                
          $status preg_replace"/http\/[0-9]\.[0-9]/i","",$headers[$i] );
              }
            }
            
          $rules =  $pieces[1];
            unset( 
          $pieces );
            return 
          $status;
          }
          if(isset(
          $_GET['url'])) {
             print 
          "<div id=\"devcheckedlinks\">\n";
             
          $done getsatuscode(getheaders($_GET['url']));
             print 
          "Checking link: ".$_GET['url']." ...<br />\n";
             print 
          "".$done."<br /><br />\n";
             @
          flush();
             @
          ob_flush();
             
          $urls GetUniqueUrls($_GET['url']);
             for(
          $i=0;isset($urls[$i]);$i++) {
                print 
          "".$i."Checking link: ".$urls[$i]." ...<br />\n";
                print 
          "".$done."<br /><br />\n";
                @
          flush();
                @
          ob_flush();
                
          sleep(3);
             }
             print 
          "</div><br /><br />\n";
          } else {
          ?>
          PHP link checker to help get rid of any dead links on your web pages.<br />
          To use this free online like checker, Just type in the box below the page
          uri you want to check then click the "Check links" button. Then the link
          checker will crawl your web page and get the links out of it and check them.
          It will return a list of links it has checked and tell you the status i.e.
          404 NOT FOUND, 200 OK, ect.</p>
          <?php
              
          print "<form action=\"linkchecker4.php\" method=\"get\">\n";
              print 
          "<p><input type=\"text\" name=\"url\" value=\"http://\" size=\"40\" />\n";
              print 
          "<input type=\"submit\" value=\"Check links\" />\n";
              print 
          "</p></form>n";
          }
          ?>
            </body>
          </html>

          hier mal mein code, allerdings funzt der auch nicht wirklich, es werden z.b. "manchmal" links also tot anerkannt, obwohl sie es nicht sind, manche links als nicht tot gemeldet, obwohl sie es auf jeden fall sind, z.b. der link http://www.aslkjasödj.de wurd als status 200 OK geliefer...

          Kommentar


          • #20
            Als Anfänger sollst du aber den Gebrauch von @ vor Funktionsaufrufe unterlassen, denn damit kannst du keine vernünftige Fehlermeldung bekommen, um richtig debuggen zu können; mach also die @ weg und poste die Fehlermeldung(en), denn geht nicht, funz nicht, etc... sind keine brauchbare Fehlermeldung.

            Kommentar


            • #21
              Bei Praktikanten ist es was anderes, bei denen hätte ich auch ein Interesse, dass sie schnell zu guten Ergebnissen kommen. Ein wirtschaftliches auf jeden Fall, ein menschliches vielleicht auch.

              Aber hier hat keiner was davon, jemanden zu motivieren. Mir persönlich ist es zumindest völlig egal, ob irgendein Fragensteller hochmotiviert ist. Ist er es nicht, hat er eben Pech. Liest er nicht, was ihm empfohlen wird, findet er eben die Lösung nicht.

              Aussagen wie "ich finde ein forum sollte dazu da sein ..." entbehren aufgrund der Verallgemeinerung jeglicher Grundlage. Jedes Forum ist genau das, zu was es die User machen. Nun gibt es naturgemäß in jedem Forum mehr Anfänger als Experten, daher vielleicht diese Annahme. Aber gerade in diesem Forum schätze ich das Mehr an Qualität und Professionalität.
              Die gilt es in meinen Augen zu erhalten und dazu gehört eben auch, dass man an Fragende gewisse Ansprüche stellt. Einer davon ist der Wille, selbst etwas zur Lösung beizutragen.

              Kommentar


              • #22
                OffTopic:
                bitte alle weitere Äußerungen darüber, wie ein Forum sein soll/muss, hier: http://www.php-resource.de/forum/sho...threadid=39983 weiter diskutieren. Danke.

                Kommentar


                • #23
                  Original geschrieben von asp2php
                  Als Anfänger sollst du aber den Gebrauch von @ vor Funktionsaufrufe unterlassen, denn damit kannst du keine vernünftige Fehlermeldung bekommen, um richtig debuggen zu können; mach also die @ weg und poste die Fehlermeldung(en), denn geht nicht, funz nicht, etc... sind keine brauchbare Fehlermeldung.
                  das mit dem @ ist schon ok, denn es kommen nur fehlermeldungen, wenn die url nicht vorhanden ist, und das sind dann auch nur fehler fsockopen fehler, was ja auch ganz normal ist in diesem fall

                  @onemorenerd
                  hab nicht gesehen, das hier nur profis zugelassen sind, warum wir dann überhaupt auf meine frage geantwortet wenn hier keine anfänger erwünscht sind?

                  Kommentar


                  • #24
                    Original geschrieben von chimaira
                    hab nicht gesehen, das hier nur profis zugelassen sind, warum wir dann überhaupt auf meine frage geantwortet wenn hier keine anfänger erwünscht sind?
                    asp2php bat gerade darum, dieses thema jetzt ruhen zu lassen, also tu das bitte auch.


                    der code, um den es jetzt aktuell geht, ist offenbar nicht von dir.
                    also analysiere ihn, um zu verstehen, was er macht, und was wo falsch läuft;
                    oder wende dich an den ersteller des scripts.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar

                    Lädt...
                    X