Вот код ф-ии:
function smile($text)
{
$files=glob('smiles/*.gif');
$smiles=array( );
$pics=array();
foreach($files as $a_files)
{
$name = pathinfo($a_files, PATHINFO_FILENAME );
$smiles[] = '|\.'.preg_quote($name).'\.|i';
$pics[] = '<img src="'.$a_files.'" alt="'.$name.'">';
}
return preg_replace($smiles,$pics,$text);
}
==>
На странице smiles делаю вывод смайлов:
$a_files = glob('smiles/*.gif');
foreach($a_files as $file)
{
$name = pathinfo( $file, PATHINFO_FILENAME );
echo'<img src="'.$file.'" alt="'.$name.'" /> .'.$name.'. <br>';
}
На странице где мне надо профильтровать текст на смайлы:
'.smile($gb['text']).'
Выводит так(см.скрин)
Выводятся такие символы смайлов:
.(.
.)).
.).
.8).
.B.
.D.
.O.
.P.
.acute.
.agres.
.angel.
.beee.
.bo.
.bomb.
.bravo.
.cray.
.crazy.
.dance.
.diablo.
.dont_know.
.drink.
.fool.
.good.
.help.
.hi.
.jokingly.
.kiss.
.kissed.
.m.
.mamba.
.music.
.nea.
.ok.
.pardon.
.rofl.
.scratch.
.sorry.
.stop.
.tired.
.wall.
.write.
.x.
.yahoo.
.yes.
О_0 насилование диска
// echo $name;
// чем str_ireplace не угодил?
// избавляйся от гк
Fashion, лучше варианта не нашёл
конечно можно юзать
preg_replace('что','на что',$text);
^^ но не хочется
function smile($text){
static $d=array();
static $img=array();
if(empty($d)){
$d=scandir($dir);
unset($d[0],$d[1]);
$img=array_map(create_function('$i','return ".".$i.".";'),$d);
}
return str_ireplace($d,$img,$text);
}
Fashion,
Warning: scandir() [function.scandir]: Directory name cannot be empty in Z:\home\test1.ru\www\system\functions\smile.php on line 8
Istsam,
function smile($text){
static $d=array();
static $img=array();
if(empty($d)){
$d=scandir($d);
unset($d[0],$d[1]);
$img=array_map(create_function('$i','return ".".$i.".";'),$d);
}
return str_ireplace($d,$img,$text);
}
Fashion, чё вы тут написали?
Вы мне этот код переделайте
добавлено спустя 5 минут:
сделал:
print_r($smiles);
print_r($pics);
==>выводит
Array ( ) Array ( )