Napisano: 10 Feb 2014 21:42
Zamolio me je prijatelj da mu napišem neki prevodilac smajlića za chat , nije ništa teško samo što ima dosta da se piše. Imam dva niza. U prvom se nalaze kodovi smajlija, a u drugom rezultati tj. putanje do slika. Koristim funkciju str_replace() (pošto je ereg_replace() deprecated) i razmišljao sam o tome da nekako skratim posao jer ima stvarno dosta tih smajlija (oko 500).
Evo kako to otprilike izgleda:
if(!empty($tekst)){
$niz1=array(
':D',
':)',
':(',
'.cao.',
'.srce.',
'.xaxa.',
'.pop.'
);
$niz2=array(
'<img src="smajlici/smeh.gif" >',
'<img src="smajlici/smesak.gif">',
'<img src="smajlici/tuzan.gif">',
'<img src="smajlici/cao.gif">',
'<img src="smajlici/srce.gif">',
'<img src="smajlici/valjanje.gif">',
'<img src="smajlici/pop.gif">'
);
$txt=str_replace($niz1, $niz2 , $tekst);
echo "Vi ste napisali $txt";
} else {
echo "Niste upisali tekst.";
}
Da li bi to moglo da se uradi preko jednog niza, ovako:
$niz1=array(
':D' => '<img src="smajlici/smeh.gif" >',
':)' => '<img src="smajlici/smesak.gif">',
':(' => '<img src="smajlici/tuzan.gif">',
'.cao.' => '<img src="smajlici/cao.gif">',
'.srce.' => '<img src="smajlici/srce.gif">',
'.xaxa.' => '<img src="smajlici/valjanje.gif">',
'.pop.' => '<img src="smajlici/pop.gif">'
);
Nego ne znam kako da postavim da str_replace() u prvom parametru sadrži key tog niza, a u drugom value istog ???
Dopuna: 10 Feb 2014 21:47
Problem rešen
if(!empty($tekst)){
$niz1=array(
':D' => '<img src="smajlici/smeh.gif" >',
':)' => '<img src="smajlici/smesak.gif">',
':(' => '<img src="smajlici/tuzan.gif">',
'.cao.' => '<img src="smajlici/cao.gif">',
'.srce.' => '<img src="smajlici/srce.gif">',
'.xaxa.' => '<img src="smajlici/valjanje.gif">',
'.pop.' => '<img src="smajlici/pop.gif">'
);
$txt=str_replace(array_keys($niz1), array_values($niz1) , $tekst);
echo "Vi ste napisali $txt";
} else {
echo "Niste upisali tekst.";
}
|