wizz99: verlixte regexpressions

halli hallo zusammen,

im moment programmiere ich eine community (zu sehen hier: http://62.141.40.109/abschnitt4.de - wer lust und/oder langeweile hat, kann sich ja mal einloggen - nick: test, passwort: test), bin so gut wie fertig. jetzt geht es nur noch um so kleine feinheiten. folgendes:

im phorum sollen eingegebene links oder email-adressen auch als solche erkannt und dementsprechend ausgegeben werden. die user müssen nur die adresse eingeben, sonst nichts. kein html oder ähnliches. bei der anzeige der beiträge wird per reg-expressions dann alles umgeformt.

klappt auch super bisher. ich möchte nun allerdings noch, dass per reg-exp erkannt wird, ob es sich z.b. um einen "normalen" link (http://einlink.de) oder um einen link zu einer graphik-datei (http://einlink.de/test.gif) handelt. im letzteren fall soll dann nämlich die graphik dargestellt werden und nicht einfach nur ein link dorthin.

außerdem möchte ich auch, dass auch links gesetzt werden, wenn nicht "http://www.einlink.de" geschrieben wurde, sondern nur www.einlink.de - notiere ich das so, dann wird "http://www.einlink.de" zweimal per reg-exp bearbeitet. einmal als ganzes und einmal nur der www-teil :(

ich verzweifel da total. ich hab mir schon zig-mal dokumentationen über reg-exp angeschaut, aber ich kriegs einfach nicht hin.

kann mir irgendwer irgendwie helfen?
vielen dank schonmal!

ach ja, für die, die sich die community mal angeschaut haben: kritik natürlich erwünscht.

  1. /^(http://)?(www.)?([\w\d-\_/.]+)(.\w{2,4})$/

    Jetzt kannst Du z.B. per if abfragen, ob es sich bei der 4.Klammer (bei Perl wäre das $4) um eine Grafik-Endung handelt oder nicht.

    Hab die RegEx jetzt so frei Schnauze geschrieben. Muss nicht 100%ig stimmen. Aber das Prinzip müsste hinhauen.

    A.

    1. hi.

      /^(http://)?(www.)?([\w\d-\_/.]+)(.\w{2,4})$/
      Jetzt kannst Du z.B. per if abfragen, ob es sich bei der 4.Klammer (bei Perl wäre das $4) um eine Grafik-Endung handelt oder nicht.

      danke. funktioniert in der form bei mir leider nicht. vor allem weiß ich nicht, wie ich per if-abfrage *innerhalb* des befehls ereg_replace() (PHP) abfragen soll, um welche endung es sich handelt.

  2. Hi,

    ich möchte nun allerdings noch, dass per reg-exp erkannt wird, ob es sich z.b. um einen "normalen" link (http://einlink.de) oder um einen link zu einer graphik-datei (http://einlink.de/test.gif) handelt.

    dazu musst Du einen HTTP-Request auf die Ressource durchführen und den Content-Type überprüfen.

    außerdem möchte ich auch, dass auch links gesetzt werden, wenn nicht "http://www.einlink.de" geschrieben wurde, sondern nur www.einlink.de - notiere ich das so, dann wird "http://www.einlink.de" zweimal per reg-exp bearbeitet. einmal als ganzes und einmal nur der www-teil :(

    Für derartige Dinge muss das "http://" optional sein. Was eine korrekte Erkennung von URLs (ob defekt oder nicht) praktisch unmöglich macht.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. hi.

      dazu musst Du einen HTTP-Request auf die Ressource durchführen und den Content-Type überprüfen.

      hatte ich vor, dazu muss/will ich allerdings - wie gesagt - erst herausfinden, worums sich eigentlich handelt (ich will da zuerst die endung abfragen und *dann* überprüfen, obs auch wirklich ein bild ist).

      Für derartige Dinge muss das "http://" optional sein.

      und das ist ja mein problem.