Vymejšlim v knize návštěv smajlíky, který se daj vložit kamkoliv do textu jako kód (např. s1s). Mám už javascript, kterej to vloží do textarey. Pak se to normálně vloží do souboru s ostatními vzkazy. Nakonec chci, aby se to při načtení zaměnilo za <img src="smajlici/1.gif">. Vymyslel jsem phpscript, kterej to pomocí fce ERegI_Replace() zamění, problém je ale v tom, že se to změní jen pokud je tam ten smajlík jen jeden, chce to prostě nějakej cyklus, ale protože jsem začátečník, nic mě nenapadá. Prosím pomožte....
php script vypadá takto:
<?
$prispevek = File("book.dat");
$prispevek = ERegI_Replace('[[:<:]]s(.+)s[[:>:]]', '<img src="smajlici\/\\1.gif">', $prispevek);
echo $prispevek;
?>
$text = str_replace("s1s", "<img src='sml1.gif'>", $text);
$trans = array ("*1*" => "<img src='sma/image001.gif'>", "*2*" => "<img src='sma/image002.gif'>", "*3*" => " "<img src='sma/image012.gif'>");
$message = strtr($message, $trans);
a jak to funguje v praxi viz me stranky->interaktivni->chat
Vy jste mě nepochopili, já chci cyklus pomocí nějakých while či for
no.. kdyz to ulozeny co zprava to prvek v poli tak to bude:
<?
$prispevek = File("book.dat");
for($i = 0; $i < 20; $i++) {
$prispevek[$i] = ERegI_Replace('[[:<:]]s(.+)s[[:>:]]', '<img src="smajlici\/\\1.gif">', $prispevek[$i]);
echo $prispevek[$i];
}
?>
Máš pravdu, cyklem to nebylo. Byla tam jen chyba. Ono to našlo to "s" úplně první a pak až úplně poslední. To, co bylo mezi tím se pak dalo jako src obrázku. Tak jsem si ještě jednou pročet regulérní výrazy v knížce od Koska a vyřešil jsem to minimem a maximem počtu libovolných znaků mezi "s". Vypadá to takto:
$prispevek = ERegI_Replace('[[:<:]]s(.{1,2})s[[:>:]]', '<img src="smileys/\\1.gif">', $prispevek);
Mám ale ještě jeden problém. Nevím, jak v tom výrazu (.{1,2}) zadat, aby ty libovolné znaky mohly být jen čísla. Stalo se mi totiž, že se nahradilo i "se s" za <img src="smaileys/e%20.gif">.
Zkoušel jsem to takto:
$prispevek = ERegI_Replace('[[:<:]]s([:digit:]{1,2})s[[:>:]]', '<img src="smileys/\\1.gif">', $prispevek);
ale ono nic, můžete mi poradit?