PhilippB: URLS aus einem String verändern

Hi,

folgendes Problem:

ich muss eine Seite auslesen und dort alle Urls bisschen ändern. An alle Urls soll noch ein kleiner String drangehängt werden.

Als Beispiel:

<a href="www.example.com/index.php?id=2&bla=0">

daraus soll werden

<a href="www.example.com/index.php?id=2&bla=0 & section=a">

das section=a soll an jede URL angehängt werden, wobei der Teil zwischen index.php? und section=a immer variable ist.

Danke sehr für alle Lösungen

  1. Hmm gute Frage,

    Also ich würd' das mal so machen:

    Ich würd' in den Strings den Bereich '<a href="' suchen lassen.
    Danach würde ich das nächste nach dem nächsten "-Zeichen suchen lassen.
    Die Position dieses Zeichens in eine Variable.
    Nun den Teil des Strings bis zu der Position-1 in einen neuen String
    und und den Teil ab der Position bis zum Ende des Strings in einen zweiten, neuen String kopieren

    ergebnis = neuerstring1 . "&section=a" . neuerstring2;

    Hoffe der Gedankengang war nicht zu schwer zu verstehen.

    Und coden kannste ja selber...

  2. Hallo.

    Ist es Dir wichtig, dass der Parameter am Ende angehängt wird? Ansonsten könntest Du auf '.php' bzw. '.php?' matchen und diesen Teil ersetzen gegen '.php?section=a' bzw. '.php?section=a&'

    Grüße aus Würzburg
    Julian

    --
    "machines will eat itself." Bau Dir Deinen eigenen Bot.
    http://www.hgb-leipzig.de:83/~franz/hyperportrait/testers/
  3. Hallo!

    Als Beispiel:

    <a href="www.example.com/index.php?id=2&bla=0">

    daraus soll werden

    <a href="www.example.com/index.php?id=2&bla=0 & section=a">

    das section=a soll an jede URL angehängt werden, wobei der Teil zwischen index.php? und section=a immer variable ist.

    $string = 'Hier ist Text und <a href="http://www.example.com/index.php?id=2&bla=0">ein Link</a> zum drauf klicken.';
    $add_query_string = "&section=a";
    echo preg_replace("/((https?)([\w/\:.?%&,;#=-]+))/", "$1" . $add_query_string, $string);

    Ich habe mal für die URL so alle Zeichen aufgenommen die es so gibt.

    MfG, André Laugks

    --
    L-Andre @ gmx.de