Xwab
Форумыnavigate_nextПрограммирование на PHP

Смайлы
Сообщения
Istsam

Вот код ф-ии:

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.

06 Мар 2011, 14:02
Fashion

О_0 насилование диска
// echo $name;
// чем str_ireplace не угодил?
// избавляйся от гк

06 Мар 2011, 14:11
Istsam

Fashion, лучше варианта не нашёл
конечно можно юзать

preg_replace('что','на что',$text);

^^ но не хочется

06 Мар 2011, 14:21
Fashion

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);
}

06 Мар 2011, 14:26
Istsam

Fashion,

Warning: scandir() [function.scandir]: Directory name cannot be empty in Z:\home\test1.ru\www\system\functions\smile.php on line 8

06 Мар 2011, 14:37
Solskjaer

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);
}

06 Мар 2011, 14:43
Istsam

Solskjaer, таже ошибка

06 Мар 2011, 14:44
Solskjaer

Istsam, брр затупил я,бодун...не о том подумал

06 Мар 2011, 14:47
Fashion

Solskjaer,
// вторым аргументом передай папку,ато я забыл чет про нее

06 Мар 2011, 14:58
Istsam

Fashion, чё вы тут написали?
Вы мне этот код переделайте
добавлено спустя 5 минут:
сделал:

print_r($smiles);
print_r($pics);


==>выводит
Array ( ) Array ( )

06 Мар 2011, 15:19
Ответить на тему