Autor | Zpráva | ||
---|---|---|---|
Jak na to? Profil * |
#1 · Zasláno: 2. 3. 2010, 11:48:42
Jakým způsobem se v php dělá že když do textu napíšu např. http://example.com tak se to změní na odkaz?
|
||
et9 Profil |
#2 · Zasláno: 2. 3. 2010, 12:06:00
Třeba přesměrováním.
|
||
Taps Profil |
#3 · Zasláno: 2. 3. 2010, 12:20:20
Jak na to?:
php přes regulární výrazy |
||
Jak na to? Profil * |
#4 · Zasláno: 2. 3. 2010, 12:23:33
et9:
„Třeba přesměrováním.“ To je nějaká blbost ne? Přesměrování nemá nic společnýho se změněním http:// na odkaz! „php přes regulární výrazy“ A nedali by jste mi někdo takový kód? Regulérní výrazi nejsou zrovna moje parketa :) |
||
Taps Profil |
#5 · Zasláno: 2. 3. 2010, 12:58:49
Jak na to?:
$zprava="http://neco.cz"; $prispevek=ereg_replace("(http://[^ ]+\.[^ ]+)", " <a href=\"\\1\">\\1\</a> ", $zprava); |
||
Jak na to? Profil * |
#6 · Zasláno: 2. 3. 2010, 13:02:24
Taps:
Díky :) |
||
AM_ Profil |
#7 · Zasláno: 2. 3. 2010, 13:29:54
Taps:
ereg_replace je deprecated. Raději $prispevek=preg_replace('~(http://[^\\s]+)~i', ' <a href="\\1">\\1</a>', $zprava); trochu jsem to i zjednodušil, v apostrofech je méně escapování. |
||
imploder Profil |
#8 · Zasláno: 2. 3. 2010, 15:48:37 · Upravil/a: imploder
Na URL mám přesnější výraz, (je to v POSIX Extended RE, pro PHP to bude potřeba převést na PCRE):
^(http://)?((([a-zA-Z0-9\-]+\.)+)([a-zA-Z][a-zA-Z0-9\-]*)|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]+)?(/[^#\?]*)?(\?[^#]*)?(#.*)?$ To je pro HTTP. Kromě začátku ("^") a konce ("$") řetězce se ještě musí v textu rozpoznávat hranice slova (tj. bílý znak nebo konec nebo začátek řetězce. Bílý znak je v PCRE "\s". seriál o PCRE pro PHP http://www.regextester.com/pregsyntax.html |
||
Časová prodleva: 15 let
|
0