Autor | Zpráva | ||
---|---|---|---|
PV Profil * |
#1 · Zasláno: 3. 3. 2007, 21:22:55
Ahojte, můžete mi prosím poradit, jak při vkládání z formuláře do db automaticky ukládat url rovnou jako odkaz?
Vím, že se to řeší přes regulární výrazy, ale nemůžu se s tím poprat. A ještě jedna věc - jak ohlídat uzavírání html tagů, pokud je teda nechci zakázat úplně? Jde to nějak jednoduše? |
||
fejtis Profil * |
#2 · Zasláno: 5. 3. 2007, 11:07:01
Tak převádění textu na odkaz se dělá, jak jsi správně řekl reg. výrazem. A na doplnění tagů se dá přeci udělat jednoduchá funkce, zapoj trochu hlavu.
|
||
zdeněk Profil * |
#3 · Zasláno: 5. 3. 2007, 13:20:15
Podívej se např. na http://www.regularnivyrazy.info/prevedeni-url-na-odkaz.html
|
||
Časová prodleva: 24 dní
|
|||
PV Profil * |
#4 · Zasláno: 29. 3. 2007, 09:48:53
Zdeňku, díky
jenže na to koukám a asi mi nezbývá než přiznat, že jsem lama, protože to nedokážu nacpat do stránky tak, aby to fungovalo. Tuším, že problém je v apostrofech a uvozovkách (????? nebo taky ne????). Můžete mi to někdo opravit, prosíííím: $_POST['text']=eregi_replace ("((http://)|(www.))([^ ]+[^,. ])", "<a href=http://".$3.$4." target=_blank>".$2.$3.$4."</a>", $_POST['text']); hlásí mi to chybu: Parse error: parse error, unexpected T_DNUMBER, expecting T_VARIABLE or '$' Předem díky moc |
||
djlj Profil |
#5 · Zasláno: 29. 3. 2007, 10:35:13
Máš blbě uvozovky…
$_POST['text']=eregi_replace ("((http://)|(www.))([^ ]+[^,. ])", "<a href='http://$3$4' target='_blank'>$2$3$4</a>", $_POST['text']); |
||
zdeněk Profil * |
#6 · Zasláno: 29. 3. 2007, 11:22:22
Aby to fungovalo s "eregi_replace" musely by se změnit i zpětné reference ze znaku dolaru$ na zpětná lomítka\
$_POST['text'] = eregi_replace ("((http://)|(www.))([^ ]+[^,. ])", "<a href='http://\3\4' target='_blank'>\2\3\4</a>",$_POST['text']); Asi by bylo lepší použít funkci preg_replace $_POST['text'] = preg_replace ("(((http://)|(www.))([^ ]+[^,. ]))", '<a href="http://$3$4" target="_blank">$2$3$4</a>',$_POST['text']); |
||
zdeněk Profil * |
#7 · Zasláno: 29. 3. 2007, 11:27:23
Zapoměl jsem, že to tu žere zpětná lomítka. Takže v příkladu s eregi_replace před 34 a 234 musí být zpětná lomítka dvě a v obou příkladech chybí zpětné lomítko před tečkou ve výrazu (www.)
|
||
PV Profil * |
#8 · Zasláno: 29. 3. 2007, 14:17:10
super, díky moc!
to lomítko před tečkou mám - aspoň něco ;-) |
||
Časová prodleva: 6 měsíců
|
|||
ann Profil * |
#9 · Zasláno: 11. 9. 2007, 12:12:09
Tak jsem tohle taky zkusila použít, ale když mi někdo ve formuláři odřádkuje, tak se do <a>tagu vloží i zbytek textu, co už do odkazu nepatří. Jak se to dá ošetřit, aby mi ten skript kontroloval kromě mezery, tečky a čárky na konci i to odřádkování?
Snad to píšu trochu srozumitelně. Předem děkuju za radu. |
||
Časová prodleva: 3 měsíce
|
|||
Jára Profil * |
#10 · Zasláno: 14. 12. 2007, 23:46:30
Mám stejný problém jako ann. Co s tím? Pomožte prosím. Nikde na internetu jsem to nenašel.
|
||
Časová prodleva: 8 dní
|
|||
Filo Profil |
#11 · Zasláno: 22. 12. 2007, 21:47:28
ann a Jára co třeba zakázat odřádkování?
|
||
djlj Profil |
#12 · Zasláno: 22. 12. 2007, 23:50:50
Jára, ann
Tuším, že by mělo stačit změnit [^,. ] na [^,. \n]. Ale možná se jen blbě dívám. |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0