Martin: Links extrahieren?

hi,

angenommen, ich habe eine variable mit dem quelltext einer datei - wie kriege ich (beispielsweise) einen array mit allen links, die auf .php, .html, .htm, .asp und .shtml enden?

- ich blicke da zuwenig mit den regulären Ausdrücken durch.

Martin

  1. hi,

    angenommen, ich habe eine variable mit dem quelltext einer datei - wie kriege ich (beispielsweise) einen array mit allen links, die auf .php, .html, .htm, .asp und .shtml enden?

    • ich blicke da zuwenig mit den regulären Ausdrücken durch.

    Hi,

    Nun gut: Betrachten wir den HTML-Sourcecode als Variable.
    Zuerst definierst Du ein Array von Stringvariablen

    1. var URIS = NewArray();

    Nun nehmen wir an, alle zu suchenden URIs beginnen mit "HTTP://...
    Dann durchsuchen wir die "Variable" mit dem Sourcecode mit

    1. Start = Variable.IndexOf("HTTP:");
    2. Ende = Variable.IndexOf(".htm")+ 4;

    und übergeben die erste gefundene URI in den Array:

    1. URIS(1) = Variable.Substring(Start, Ende);

    Nun müssen wir noch die Variable kürzen mit

    1. Textende = variable.length;
    2. Variable = Variable.Substr(Ende+1,Textende);

    Nun können wir nach der nächsten URI suchen und oben erneut starten.
    Das ganze macht sich gut in einer While-Schleife.
    Übrigens mußt Du den Text in eine "function" einbinden:

    function SucheURISinText(Variable) {
           Hier gehören die o. g. Befehle hin.
    }

    Wenn Du Hilfe bei den Befehlen brauchst, suche nach dem Wort oder
    Befehl unter
    http://selfaktuell.teamone.de/   unter Suche.

    Suchst Du jetzt mehrere URI-Endungen in einem Durchgang, solltest
    Du anstelle von Befehl 3) folgende Befehle einbinden:

    Ende1 = Variable.IndexOf(".php");
    Ende2 = Variable.IndexOf(".html");
    Ende3 = Variable.IndexOf(".asp");
    Ende4 = Variable....

    Wenn Du jetzt mit einer IF-Staffel den kleinsten Wert ermittelst,
    weist Du, welche URI Du als nächst zu lesen hast.

    Ende = Min(Ende1, Ende2)
    If (Ende == Ende1) Ende = Ende + 3 // +3 wegen .php
    else {
       Ende = Min(Ende2, Ende3)
       IF (Ende == Ende2) Ende = Ende + 4; // +4 wegen .html
       else {
          Ende = Min(Ende3, Ende4)
          IF ...
       }
    }

    Viel Glück und Spaß beim Programmieren...
    Michael.