Autor Zpráva
aoiafafoaosa
Profil *
Zdravím,
robím jednu väčšiu návštevnú knihu, kde je použitá galéria asi 500 smajlíkov. Smajlíky sa do knihy budú vkladať napríklad v tvare [*234*], ktorý sa prepíše na <img src="smiles/234.gif" />.

1.) Ale chcel by som zabezpečiť, aby sa dalo do jedného príspevku použiť maximálne 10 smajlíkov rôzneho druhu (rôzne čísla). Ako by som mal spraviť premieňanie [*234*] na <img src="smiles/234.gif" /> aby bolo možné vložiť len tých 10 smajlíkov?

2.) Povedzme, že by som chcel niekedy v budúcnosti zoraďovať smajlíkov v galérii podľa počtu vložení do príspevkov (čím viac vložení daného smajlíka, tým vyššie by bol v galérii). Výsledky by som ukladal napríklad do MySQL. Ale ako mám zistiť pri pridávaní príspevku, koľko krát bol aký smajlík použitý?


pozn.: riešenie vidím asi jedine v regulárnych výrazoch, no nemám s nimi až také skúsenosti aby som toto vedel spraviť. Vedel by niekto nejaké jednoduché (a hlavne nie veľmi na server zaťažujúce) riešenie ako obidva body zahrnúť do toho scriptu?


Vďaka.
Kcko
Profil
preg_match a count
Jack Finger
Profil
Výsledky by som ukladal napríklad do MySQL. Ale ako mám zistiť pri pridávaní príspevku, koľko krát bol aký smajlík použitý?
dej si to tabulky se smajlama ještě sloupec, kde budeš počítat kolikrát se vyskytuje v zadaném textu a pak řaď podle toho sloupce DESC
aoiafafoaosa
Profil *
Jack Finger >> áno, to už mám vyriešené, s tým problém nie je, skôr by ma zaujímala časť v php, kde to bude počítať tie výskyta smajlov v texte

Kcko >> áno, presne to som si aj myslel, že bude použité, ale aký regulárny výraz tam mám dať?


Vďaka.
BetaCam
Profil
aoiafafoaosa

třeba :

<?php
$string = 'Testovaci [*235*] string [*235*][*235*] pro [*234*] preg_match_all [*232*] . [*234*]';
$array = array();
preg_match_all('/\[\*([0-9]*)\*\]/', $string, $array);

echo '<pre>';
print_r(array_count_values($array[1]));
echo '</pre>';
?>
djlj
Profil
aoiafafoaosa
Jsou tu možná funkční, avšak zbytečná složitá řešení. Použij funkci preg_replace a využij u ní vstupní proměnné pro limit.

http://cz2.php.net/preg_replace

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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