PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Regex



sowatt
23-12-2002, 12:41
Hallo,
ich hab da ein großes Problem mit den Regulären Ausdrücken (PCRE).

Wenn ich in einer Variablen den Quellcode einer HTML Datei habe und sich in dem
Code diverse Links befinden die Absolut sind andererseits aber auch einige
Dokumenteninterne Anker, ist es dann irgendwie möglich ausschließlich
die Anker in relative Pfade zu verwandeln.

In der PHP-FAQ steht ein beispiel welches der Sache schon sehr nahe kommt,
aber leider alle Links in 'nicht Links' verwandelt.

Nun sind diese Regexe reine Hyroglyphen für mich so das ich überhaupt
keinen Lösungsansatz finde.
Vielleicht weis hier ja jemand etwas besser bescheid?!

Bin für jeden Tip dankbar.

Vielen Dank
MfG
sowatt

PS. Ja, ich habe schon in's Manual geschaut und auch schon 'gegoogelt'

Gaert
23-12-2002, 14:27
Hallo!

Könntest du mal den Link zu der FAQ Page posten, von der du gesprochen hast?

McG.linux
23-12-2002, 14:33
Hi

Wenn ich dich richtig verstanden hab hast du n paar links in dem Dokument welche so ausschauen:

http://foo.bar

und n paar Anker die von

#anker1

in

http://foo.bar#anker1

verändert werden sollen, richtig?

in diesem fall würde das ungefär so ausschauen:
preg_replace('/href=\"(#.*)\"/is','href="http://www.dein.dokument/dokument.html\\¹"', $dokumentstring);


Gruß
mcg.linux

sowatt
24-12-2002, 03:03
Hallo,
@Gaert, die ist der link zur FAQ. Dieses Pattern habe ich auch ausprobiert
aber leiser ersetzt er nur die 'normalen' Links. Andere Links (Bilder, EMail..)
erkennt er leider nicht, und ich brauche ja nur die Anker.

http://www.dclp-faq.de/q/q-regexp-links-finden.html


Nein, die Anker sind in der form: http://www. #anker1
und sollen in '#anker1' umgewandelt werden.

Vielen Dank

MfG
sowatt

McG.linux
25-12-2002, 15:07
dann eben:

$dokumentstring = preg_replace('/href=\".*(#.*)\"/is','href="\\¹"', $dokumentstring);

Probier das mal.

gruß
mcg.linux