1
Hallo,
ich bin immer noch kein sonderlicher Experte im Umgang mit regulären Ausdrücken, aber ich lerne hart :) Nachdem ich nun schon eine lange Zeit vor diesem Problem verbracht und geärgert habe, bitte ich um Hilfe. bitte bitte.
Es geht darum, in html-Text die Session-ID an Links dranzuhängen, die auf innerhalb der eigenen Domain eines gewissen Verzeichnisses verweisen (im Beispiel 'domain.com/prog/'), aber nur an die.
So weit bin ich inzwischen:
Suchregex:
Die bereits vorhandenen Parameter sind ebenfalls ein Problem - es müsste dann & anstatt ? verwendet werden. Kann man das überhaupt mit einem preg_replace lösen oder braucht man da bereits ein callback?
Vielen Dank für Tips in die richtige Richtung,
Rudy
ich bin immer noch kein sonderlicher Experte im Umgang mit regulären Ausdrücken, aber ich lerne hart :) Nachdem ich nun schon eine lange Zeit vor diesem Problem verbracht und geärgert habe, bitte ich um Hilfe. bitte bitte.
Es geht darum, in html-Text die Session-ID an Links dranzuhängen, die auf innerhalb der eigenen Domain eines gewissen Verzeichnisses verweisen (im Beispiel 'domain.com/prog/'), aber nur an die.
$text = '<h1>Session anhängen:</h1>
<p><a id="a" href="http://domain.com/prog/bla.html"><strong>Bla</strong></a></p>
<p><a href="http://www.domain.com/prog/blaa.html"><strong>Blaa</strong></a></p>
<p><a href="http://sub.domain.com/prog/blala.html?id=2"><strong>Blala</strong></a></p>
<p><a href="https://domain.com/prog/blabla.html?id=2&id2=3"><strong>Blabla</strong></a></p>
<p><a href="/prog/blubblu.html"><strong>Blubb</strong></a></p>
<p><a href="blubbu.html"><strong>Blubb</strong></a></p>
<h1>Session NICHT anhängen:</h1>
<p><a href="http://anderedomain.com/prog/index.html"><strong>Bla</strong></a></p>
<p><a href="https://anderedomain.com/maeh/index.html"><strong>Bla</strong></a></p>
<p><a href="ftp://domain.com/blala.html"></a></p>'
So weit bin ich inzwischen:
Suchregex:
/(<a[^>]+href="((http|https)\://(.+)?.?domain.com/prog/|/prog/)([^"]*))/ixg
Ersetzung:$1?sid=12345
Leider haut das nicht hin, es wird der Link auf 'anderedomain.com/prog/' auch ersetzt, und der Link ohne Verzeichnis (href="blubbu.html') wird nicht aufgenommen, weil ich nicht weiß, wie ich dem Suchstring beibringe, auf Links ohne / am Anfang zu reagieren (*Kopf gegen den Monitor stoß*) Die bereits vorhandenen Parameter sind ebenfalls ein Problem - es müsste dann & anstatt ? verwendet werden. Kann man das überhaupt mit einem preg_replace lösen oder braucht man da bereits ein callback?
Vielen Dank für Tips in die richtige Richtung,
Rudy