Regular Expression gesucht

  • Hi

    Ich bräuchte hilfe bei einer reg-expr ....

    Will, dass alle vorkommen von:

    <a href="xxxx" target="_xxx">YYYY</a> durch
    YYYY ersetz werden, sprich, den link eintfernen ....

    mein Ansatz war:
    $output= eregi_replace('<a href=[^>]*>([^<]*)</a>', "\\1", $input);

    was aber net wirklich funktioniert ... (zumindest nicht immer)

    hat jemand eine idee?

  • Code
    <a href="blah">text<i>text</i></a>

    das wär so ein sonderfall

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • genau ... naja, das ist wirklich mühsam und ich brings net wirklich 100%ig hin ... habs jetzt gelassen (war für die Druckversion einer Seite) und einfach nicht als Link gekennzeichnet, wird scho keiner draufklicken *g*, ich glaub mittlerweile auch, dass eregi_replace unter php net sooo toll funktioniert.

  • Code
    <a href="xyz">a</a>mich gibts nicht<a href="abc">b</a>

    würde zu "a</a>mich gibts nicht<a href="abc">b" werden.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Zitat von hal
    Code
    <a href="xyz">a</a>mich gibts nicht<a href="abc">b</a>

    würde zu "a</a>mich gibts nicht<a href="abc">b" werden.

    mit

    Code
    s/<a\s+[^>]+>(.*?)<\/a>/$1/

    wirds zu

    Zitat

    amich gibts nicht<a href="abc">b</a>

    mit

    Code
    s/<a\s+[^>]+>(.*?)<\/a>/$1/g

    schliesslich
    zu

    Zitat

    amich gibts nichtb

    passt das nicht?

  • Mein Problem sind eher solche Sachen:

    Code
    <a href="mitarbeiter.php?sitecode=<? echo encode_sitecode($lang,4,1);?>&select=detail&pers_id=<? echo get_person_id("Nachname", "Vorname");?>">UNDDASHIERWILLICHHABEN</a>

    Aber ich glaub fast, das wird mühsam *g*

    Das Problem würde sich lösen, wenn ich irgendwie an den PHP-Interpretierten Code kommen würde (der wird mit require() erzeugt) ... aber wie kann ich sowas in eine Variable einlesen.

    Sprich: php seite interpretieren -> in variable einlesen -> regexpr drüber laufen lassen -> ausgeben ....

    Falls da wer ne idee hat, würden die oben genannten expressions nämlich hinahauen

  • PHP kann man auch auf der kommandozeile ausführen, ganz ohne webserver...

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Vergiss es. Ich kann dir schon noch ein paar passende regexp basteln - aber es schaut eher so aus, als ob der code nicht stabil bleiben wuerde.
    <a href="(beliebiger php-code)">xxx</a> wird dir wohl nur ein (HTML-)Parser verlaesslich herausfitzeln koennen.

  • Übrigens ist der Code kein gültiges HTML -- & muss als &amp; encoded werden (auch in attributen)!

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • ja, das man php auf der kommandozeile ausführen kann ist mir klar, aber auf maschinen mit php im safe mode hat man mit exec so seine Problemchen ;) deswegen wollte ich das eher vermeiden

    das der code nicht valid ist, ist mir auch klar, macht aber bei der regular expression keinen Unterschied ... trotzdem danke für den Hinweis :) (btw: mir fallt zz kein Browser ein, der sowas falsch interpretiert, daher muss ich gestehen bin ich da hier und da mal schlampig und vergess drauf, du hast aber natürlich recht: das ist pfui ;)

    naja mal schauen .... ich glaub der Aufwand ist es einfach nicht Wert da weiter rumzubasteln ...

  • Zitat von phlow

    (btw: mir fallt zz kein Browser ein, der sowas falsch interpretiert, daher muss ich gestehen bin ich da hier und da mal schlampig und vergess drauf, du hast aber natürlich recht: das ist pfui ;)

    Das kann man gar net richtig interpretieren, insofern interpretieren das alle Browser falsch.

    Warum ich so anal bei sowas bin ist aber eine andere Geschichte:
    Ich entwickle grade einen RSS/Atom-Client, und der muss auch inline-HTML interpretieren können. Bei diesen Feeds nehmen aber auch alle Leute an, man kann einfach & schreiben, nur weil das halt zufällig eine URL ist... libxml mag das aber gar net beim parsen, und ich bin dann schuld, wenn die URLs falsch dargestellt werden.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • ok, hast recht ... es machen alle falsch. ich versteh dein Leid durchaus und bin eh bemüht, dass mir solche Fehler nicht passieren ... manchmal passierts halt doch, und dann merkt man es erst beim validator ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!