URLS aus einem String verändern
PhilippB
- php
0 *Nerd0 Julian Hofmann0 André Laugks
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
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 . "§ion=a" . neuerstring2;
Hoffe der Gedankengang war nicht zu schwer zu verstehen.
Und coden kannste ja selber...
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
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 = "§ion=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