Обработка смайлов

Печать RSS
226

Автор
ツ ツ ツ
0
Я для обработки смайлов использую файл C:\Program Files\QIP Infium\Smilies\Animated\_define.ini с квипа, так всё то очень хорошо и удобно, даже без циклов обхожусь, но вот возникает проблема, смайлов то много и страдаю ссылки, есть какие то идеи как сохранить целостность ссылки? регуляркой заменять смайлы не хочется, я вот думаю мажет перед обработкой извлекать все ссылки preg_match_all а потом после обработки смайлов опять брать preg_match_all и выбирать все ссылки но учитывать в них
<img src="/image/smiles/...gif" alt=""/> и делать чтото типа
foreach($url2 AS $key=>$txt){
$msg = str_replace($url2[$key][0], $url2[$key][0], $msg);
}
Но вот незнаю как правильно составить регулярку чтоб извлечь ссылки во второй массив, с учетом что в них может быть <img src="/image/smiles/[0-9].gif" alt=""/>
Автор
ツ ツ ツ
0
Вот собственно функция кодирования-декодирования смайлав
<?php
function smiles($msg, $back = false)
{
    $file = file($_SERVER['DOCUMENT_ROOT'] . '/local/smiles.dat');
	$smiles = unserialize($file[0]);
	return $back ? strtr($msg, array_flip($smiles)) : strtr($msg, $smiles);
}
?>
Автор
ツ ツ ツ
0
Вот так всегда, не поспишь ночь а под утро зацикливаешься на мелочиD с меня пиво за решение этой задачи))

ВЕЛИКИЙ и УЖАСНЫЙ!
0
Давай проще выложу тебе набор смайлов и файл кучей str_replace для их вывода =))))

2000 лет д.н.э.
0
На ум приходит только модификация функции обработки ссылки.. Перед превращением ее в живую ссылку обработать функцией обратной от смайлов $msg = preg_replace('|<img src=\"smiles\/(.*?)\.gif\" alt=\"\" \/>'|i','\1',$msg);
типа тогоsmile
Автор
ツ ツ ツ
0
4. SNELS точно монах, Да спасибо)) у меня стоит главная задача в том чтоб с легкостью можно было юзать паки смайлов под квип, так то уже всё реализовано и довольно коротко, осталось только ссылки спасти D
Автор
ツ ツ ツ
0
5. ramzes, как домой прийду отвечу) на улице ша

2000 лет д.н.э.
0
#4, тут в полезных кусках кучу функций писали на смайлы. На порядок лучше чем реплейс на каждый смайл прописыватьsmile
Автор
ツ ツ ツ
0
ramzes (Сегодня / 12:35)
На ум приходит только модификация функции обработки ссылки.. Перед превращением ее в живую ссылку обработать функцией обратной от смайлов $msg = preg_replace('|<img src=\"smiles\/(.*?)\.gif\" alt=\"\" \/>'|i','\1',$msg);
типа тогоsmile
В моем случае так не выйдет.
В обшем задам вопрос немного по другому, помогите составить регулярку чтоб она из
http://test1.ru/forum/?mod=<img src="/image/smiles/001.gif" alt=""/>dd текс
Выбирала
http://test1.ru/forum/?mod=<img src="/image/smiles/001.gif" alt=""/>dd
но с учетом что ссылка может быть просто http://test1.ru/forum/?mod=dd т.е и обычную она должна брать и с тегом картинки

2000 лет д.н.э.
0
Почему не выйдет? Выйдет, но добавит нагрузки, просто повторно обрабатываешь текст только уже в обратном порядке, картинки в эквивалент из файла превращаешьsmile
про регулярку не понял вопроса..
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск