Autor Zpráva
Pilgrim
Profil
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
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
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
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
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
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
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

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0