Autor | Zpráva | ||
---|---|---|---|
Quagmire Profil * |
#1 · Zasláno: 22. 2. 2010, 18:01:15
Dobrý den.
Mám na svém webu něco jako vzkazník (návštěvní kniha, guestbook - jak chcete) , kam návštěvníci mohou přidat vzkaz, který je následně uložen do MySQL databáze a pak zase vypsán. Abych zabránil případnému HTML vstupu do vzkazníku, zpracovávaný text od návštěvníka jsem projel funkcí htmlspecialchars. Tak ale uživatel přijde o veškeré možnosti formátování textu. Chtěl bych se tedy zeptat, jak udělám, aby některé formátování textu mohl uživatel použít, aniž by narušil strukturu webu? Napadlo mě, že by uživatel do vzkazníku mohl zadávat např. [ b ] tučně [ / b ] apod, zkrátka podobný systém jako je zde na fóru. A pak pomocí funkce str_replace by se [ b ] nahradilo za <b>, [ /b ] za </b> apod. Pak se ale může stát, že uživatel zapomene [ / b ] a zničí tak celý vzhled stránky. Šlo by tedy, aby skript odstranil z textu [ b ], pokud tam není ukončovací značka? Šlo by to samé udělat i s odkazy popř. obrázky? |
||
AM_ Profil |
#2 · Zasláno: 22. 2. 2010, 19:01:04
Nejjednodušeji se to dělá pomocí regulárních výrazů, např.
$text = preg_replace('~[ b](.*)[ /b]~isU', '<b>\\1</b>', $text); |
||
Keeehi Profil |
#3 · Zasláno: 22. 2. 2010, 19:04:34
Quagmire:
Na překlad z bbcode můžeš použít třeba tuto funkci. function BBcode($texto){ $a = array( "/\[i\](.*?)\[\/i\]/is", "/\[b\](.*?)\[\/b\]/is", "/\[u\](.*?)\[\/u\]/is", "/\[size=(.*?)\](.*?)\[\/size\]/is", "/\[color=(.*?)\](.*?)\[\/color\]/is", ); $b = array( "<i>$1</i>", "<b>$1</b>", "<u>$1</u>", "<font size=$1>$2</font>", "<font color=$1>$2</font>", ); $texto = preg_replace($g, $h, $texto); return $texto; } |
||
Časová prodleva: 2 měsíce
|
|||
machus Profil * |
#4 · Zasláno: 13. 4. 2010, 23:00:05
můžete poradit jak přeložit [img] [/img]?
díky |
||
AM_ Profil |
#5 · Zasláno: 14. 4. 2010, 00:03:11
machus:
podobným regulárem jako v předchozím příspěvku, jen si ho poupravíš na tag img místo uvedených. A konkrétně IMG se řešilo nesčetněkrát jak tady v diskusi, tak i v celém internetu, budiž ti tedy google dobrým kamarádem. |
||
Machus Profil * |
#6 · Zasláno: 14. 4. 2010, 11:48:36
už to hledám na googlu několik hodin a nemůžu to najít.
Chápu, že se to dá napsat podobným jako v předchozím případě, ale nevím jak. Nevím jak to napsat, tak aby to bralo odkaz na internet a zároveň cestu na pevném disku. Napsal bych to takhle, ale nejsem si jist zda to je dobře. "/\[img\](.*?)\[\/img\]/is" "<img>$1</img>" Díky |
||
SpotRudloff Profil * |
#7 · Zasláno: 14. 4. 2010, 18:23:51
Machus:
Nemůžeš mít <img> a </img> <img src="odkaznaobrazek.format"> |
||
Časová prodleva: 14 let
|
0