Autor | Zpráva | ||
---|---|---|---|
Pilgrim Profil |
#1 · Zasláno: 22. 8. 2007, 20:54:34
Dobrý den,
udělal jsem si formulář, který odesílá do databáze MySQL text. Text je uložený v řádku v tabulce. Chtěl bych aby mi ve výpisu text nahradil text třeba !16! za smajlíka <img src="../media/images/smiles/new/16.gif" title="!16!" border=0>. PHP vypadá asi takto, na tento způsob: $query = "SELECT * FROM msg ORDER BY id DESC"; while($result = mysql_fetch_array($query)) { echo "$result[Text]"; } Chci, aby v text např: ,,Zkušební text !16! pro smajlíka." byl nahrazen: ,,Zkušební text 'obrazek smajliku' pro smajlíka." Předem děkuji |
||
Pilgrim Profil |
#2 · Zasláno: 22. 8. 2007, 21:11:33
Tak už jsem to udělal sám :-)
Pro ty, kteří by to potřebovali. Řešení je takové: $query = "SELECT * FROM msg ORDER BY id DESC"; while($result = mysql_fetch_array($query)) { $nahradit_co = array("!16!"); $nahradit_cim = array("<img src="../media/images/smiles/new/16.gif" title="!16!" border=0>"); $text = str_replace($nahradit_co, $nahradit_cim, $result['Text']); echo "$text"; } |
||
Alphard Profil |
#3 · Zasláno: 22. 8. 2007, 21:30:23
ještě pouvažuj o efektivitě, 1x zapíšeš, několikrát zobrazíš, možná by bylo lepší zapisovat již nahrazenou verzi i za cenu toho, že to bude delší
záleží hlavně na tom, jak často se to bude vypisovat a kolik toho bude |
||
Pilgrim Profil |
#4 · Zasláno: 22. 8. 2007, 22:19:22 · Upravil/a: Pilgrim
Alphard: Ano to jsem taky uvažoval, že by bylo dobré prostě to vypsat kodem a uložit to do databáze tak, ale jedná se o chat, kde si nemohu dovolit, aby uživatelé zapsali věc jako kód.
Nyní mám ale problém jiný. To jak jsem to vyřešil my nahradí pouze texty, ktere obsahuji jen !16!, ale nenahradi to treba kod uprosted textu nekde. Pokud hcete vědět k čemu to přesně potřebuji, tak náhled prozatimní verze je zde: http://zamilujse.eu/chat2/index.php?room=21 Uživatel: Test Heslo: test |
||
peta Profil |
#5 · Zasláno: 23. 8. 2007, 08:51:14 · Upravil/a: peta
Pilgrim Alphard
Nahradu bych dal do JS pri vypisu. xFilter[0]="*([1-2]?[0-9])*"; //*cislo* reg = new RegExp(xFilter[i],""); //druhy parametr si muzes dat g jako global source = source.replace(reg,d); //d je retezec nahrady, ja tam pouzivam oddelovac, protoze to pozdeji nahrazuji cyklem a pocitam smajliky v PHP mam potom takovouto legracku. http://peter-mlich.wz.cz/forum/index.php?action=vthread&forum=6&topic= 192&page=-1#17 poslal jsem si to sem, protoze tady maji miniBB nastaveno tak, ze odmaze lomitka V podstate jde o tom, ze textove smajliky prefiltruji v PHP na cisla a cisla potom v JS prefiltruji na obrazky. Mozna by to bylo zajimavejsi obracene, na textove smajliky+cisla a JS at si poradi. |
||
Pilgrim Profil |
#6 · Zasláno: 23. 8. 2007, 13:46:38
peta:
děkuji, já ale neovládám natolik JS. Sice jsem schopný se v něm orientoval, ale raději bych to měl jako PHP, kdybych někdy v budoucnu musel dělat úpravu či přeprogramování apod. |
||
Pilgrim Profil |
#7 · Zasláno: 23. 8. 2007, 16:08:12
Mám spíš problém jiný.
Tohle je PHP kód, kterým volám záměnu smajlíků, které jsou uložené v MySQL. Když nastavím do kódu pevně hodnoty !16! a URL smajlíku, tak mi smajlík nahradí i uprostřed textu, ale pokud dám, aby z uloženého textu v databázi vyhledal kód smajlíku (LIKE '%$text_a%'), tak mi nahradí jen texty, které obsahují JEN kód smajlíku, ale texty co obsahují kód někde uprosřed např., tak mi nenahradí za smajlíka. Výsledek je pak takový: Víte někdo jak to udělat, aby po mě pan server pochopil co po něm chci? :-D :-D |
||
Časová prodleva: 17 let
|
0