verlixte regexpressions
wizz99
- php
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.
/^(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.
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.
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
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.