1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Community
  3. Smalltalk

Regular Expression gesucht

  • phlow
  • 12. Juli 2004 um 21:57
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • phlow
    Punkte
    1.423
    Beiträge
    262
    • 12. Juli 2004 um 21:57
    • #1

    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?

  • slayven
    Punkte
    85
    Beiträge
    17
    • 13. Juli 2004 um 11:55
    • #2
    Code
    s/<a\s+[^>]+>([^<]+)<\/a>/$1/

    Wenn das nicht passt, zeig mal die Sonderfaelle.

  • hal
    Punkte
    11.122
    Beiträge
    2.208
    • 13. Juli 2004 um 23:37
    • #3
    Code
    <a href="blah">text<i>text</i></a>

    das wär so ein sonderfall

  • phlow
    Punkte
    1.423
    Beiträge
    262
    • 14. Juli 2004 um 09:46
    • #4

    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.

  • slayven
    Punkte
    85
    Beiträge
    17
    • 14. Juli 2004 um 11:17
    • #5
    Code
    s/<a\s+[^>]+>(.*?)<\/a>/$1/
  • hal
    Punkte
    11.122
    Beiträge
    2.208
    • 14. Juli 2004 um 12:35
    • #6
    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.

  • slayven
    Punkte
    85
    Beiträge
    17
    • 14. Juli 2004 um 13:10
    • #7
    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?

  • phlow
    Punkte
    1.423
    Beiträge
    262
    • 14. Juli 2004 um 14:06
    • #8

    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

  • hal
    Punkte
    11.122
    Beiträge
    2.208
    • 14. Juli 2004 um 14:20
    • #9

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

  • slayven
    Punkte
    85
    Beiträge
    17
    • 14. Juli 2004 um 14:20
    • #10

    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.

  • hal
    Punkte
    11.122
    Beiträge
    2.208
    • 14. Juli 2004 um 14:22
    • #11

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

  • phlow
    Punkte
    1.423
    Beiträge
    262
    • 14. Juli 2004 um 14:45
    • #12

    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 ...

  • hal
    Punkte
    11.122
    Beiträge
    2.208
    • 14. Juli 2004 um 15:31
    • #13
    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.

  • phlow
    Punkte
    1.423
    Beiträge
    262
    • 14. Juli 2004 um 19:29
    • #14

    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 ;)

  • Maximilian Rupp 29. Dezember 2024 um 15:57

    Hat das Thema aus dem Forum Sonstiges (Archiv) nach Off-Topic verschoben.

  1. Datenschutzerklärung
  2. Impressum