Stephan: Links checken

Hallo,

ich habe jetzt den folgenden Code geschrieben, allerdings will ich jetzt nicht, dass er mir "/n/n Links wurden gefunden" ausgibt, sodern dass er wenn 1 (oder mehr) Links gefunden wurden <img src="linkok.jpg"> in die datei $dateiname schreibt, wenn keine Links gefunden wurden das in die Datei $dateiname: <img src="linknot.jpg">.
Allerdings soll er das immer überschreiben...

---Code---

<?

function search4links($url)
{
static $urlBuffer;
if(isset($urlBuffer[$url])) return 0;
$urlBuffer[$url] = 1;

echo("Durchsuche $url<br>\n");
flush();
$meineSeite = @implode("", @file($url));
if(!$meineSeite) return 0;

// Links suchen
preg_match_all("/\href=("|')(.*)(\1)/siU", $meineSeite, $ausgabe);
$anzahlLinks = 0;

foreach($ausgabe[2] as $link)
{
   if(preg_match("/http://(meinedomain.de|meinedomain2.de)/i", $link))
   {
      $anzahlLinks++;
   }
   else
   {
      if(!$link[0] == "/")
      {
         if(!preg_match("/(http://.*)/(.*).(.*)$/siU", $url, $mUrl))
         {
            $anzahlLinks += search4links($url."/".$link);
         }
         else
         {
            $anzahlLinks += search4links($mUrl[1]."/".$link);
         }
      }
      else
      {
         preg_match("/(http://.*)//siU", $url, $mUrl);
         $anzahlLinks += search4links($mUrl[1]."/".$link);
      }

}

}

return $anzahlLinks;

}

if(isset($_POST[url]))
echo "\n\n<br><br>Links gefunden: ".search4links($_POST[url]);

?>

---/Code---

Danke schon jetzt für die Hilfe, habe schon viel probiert, komme aber nicht weiter :-( *verzweifel*

Danke schon jetzt

Stephan

  1. Hallo Stephan,

    ich habe jetzt den folgenden Code geschrieben, allerdings will ich jetzt nicht, dass er mir "/n/n Links wurden gefunden" ausgibt,

    funktioniert die Funktion search4links()?

    sodern dass er wenn 1 (oder mehr) Links gefunden wurden <img src="linkok.jpg"> in die datei $dateiname schreibt, wenn keine Links gefunden wurden das in die Datei $dateiname: <img src="linknot.jpg">.

    Du musst einfach Abfragen, welchen Wert deine Funktion zurückgibt, die Datei öffenen (fopen()) den entsprechenden Wert reinschreiben (fwrite()) und die Datei wieder zumachen (fclose()). Die Funktionen die du brauchst findest du auf http://de.php.net/ref.filesystem. Wo liegt genau dein Problem?

    Allerdings soll er das immer überschreiben...

    verwende als zweiten Parameter für fopen einfach 'w', dann wird die Länge der Datei auf 0 gesetzt.

    if(isset($_POST[url]))

    lies dazu mal http://www.php.net/manual/de/language.types.array.php#language.types.array.foo-bar

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|