Обработка смайлов - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Mon, 13 Jan 2025 05:48:47 +0300<a href="http://wb-fx.smartoff.net/blogpost/PHP-class-obrabotki-smajlov/" target="_blank" rel="nofollow">http://wb-fx.smartoff.net/blogpost/PHP-class-obrabotki-smajlov/</a><br>
моя версия обработки смайлов<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile">
https://visavi.net/topics/8154/149010
Обработка смайлов ramzesTue, 13 Apr 2010 20:18:11 +0400Сообщенияhttps://visavi.net/topics/8154/149010Пока с сестрой мелкой на базар ходил проснулось решение <img src="https://visavi.net/uploads/stickers/D.gif" alt="D"> <br>
<pre class="prettyprint"><?php
function smiles($msg, $back = false)
{
$file = file($_SERVER['DOCUMENT_ROOT'] . '/local/smiles.dat');
$smiles = unserialize($file[0]);
if(!$back){
//Делаем дам ссылок
preg_match_all('#(http(s)?://).*?(\s|$)#si', $msg, $url);
$msg = preg_replace('#((http(s)?://).*?(\s|$))#si', '<link>', $msg);
//Обработка
$msg = strtr($msg, $smiles);
//Востанавливаем покацаные ссылки
preg_match_all('#<link>#i', $msg, $url2);
$msg = str_replace($url2[0], $url[0], $msg);
}else{
//Декодирование
$msg = strtr($msg, array_flip($smiles));
}
return $msg;
}
?></pre>
https://visavi.net/topics/8154/148938
Обработка смайлов LugaroTue, 13 Apr 2010 18:00:22 +0400Сообщенияhttps://visavi.net/topics/8154/148938Почему не выйдет? Выйдет, но добавит нагрузки, просто повторно обрабатываешь текст только уже в обратном порядке, картинки в эквивалент из файла превращаешь<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> <br>
про регулярку не понял вопроса..
https://visavi.net/topics/8154/148886
Обработка смайлов ramzesTue, 13 Apr 2010 16:35:41 +0400Сообщенияhttps://visavi.net/topics/8154/148886<blockquote class="blockquote"><strong>ramzes</strong> (Сегодня / 12:35)<br>
На ум приходит только модификация функции обработки ссылки.. Перед превращением ее в живую ссылку обработать функцией обратной от смайлов $msg = preg_replace('|<img src=\"smiles\/(.*?)\.gif\" alt=\"\" \/>'|i','\1',$msg);<br>
типа того<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> </blockquote>
В моем случае так не выйдет.<br>
В обшем задам вопрос немного по другому, помогите составить регулярку чтоб она из <pre class="prettyprint">http://test1.ru/forum/?mod=<img src="/image/smiles/001.gif" alt=""/>dd текс</pre>Выбирала <pre class="prettyprint">http://test1.ru/forum/?mod=<img src="/image/smiles/001.gif" alt=""/>dd</pre> но с учетом что ссылка может быть просто <a href="http://test1.ru/forum/?mod=dd" target="_blank" rel="nofollow">http://test1.ru/forum/?mod=dd</a> т.е и обычную она должна брать и с тегом картинки
https://visavi.net/topics/8154/148813
Обработка смайлов LugaroTue, 13 Apr 2010 15:04:39 +0400Сообщенияhttps://visavi.net/topics/8154/148813#4, тут в полезных кусках кучу функций писали на смайлы. На порядок лучше чем реплейс на каждый смайл прописывать<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile">
https://visavi.net/topics/8154/148742
Обработка смайлов ramzesTue, 13 Apr 2010 13:53:20 +0400Сообщенияhttps://visavi.net/topics/8154/1487425. <strong>ramzes</strong>, как домой прийду отвечу) на улице ша
https://visavi.net/topics/8154/148737
Обработка смайлов LugaroTue, 13 Apr 2010 13:43:16 +0400Сообщенияhttps://visavi.net/topics/8154/1487374. <strong>SNELS точно монах</strong>, Да спасибо)) у меня стоит главная задача в том чтоб с легкостью можно было юзать паки смайлов под квип, так то уже всё реализовано и довольно коротко, осталось только ссылки спасти <img src="https://visavi.net/uploads/stickers/D.gif" alt="D">
https://visavi.net/topics/8154/148735
Обработка смайлов LugaroTue, 13 Apr 2010 13:40:12 +0400Сообщенияhttps://visavi.net/topics/8154/148735На ум приходит только модификация функции обработки ссылки.. Перед превращением ее в живую ссылку обработать функцией обратной от смайлов $msg = preg_replace('|<img src=\"smiles\/(.*?)\.gif\" alt=\"\" \/>'|i','\1',$msg);<br>
типа того<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile">
https://visavi.net/topics/8154/148728
Обработка смайлов ramzesTue, 13 Apr 2010 13:35:33 +0400Сообщенияhttps://visavi.net/topics/8154/148728Давай проще выложу тебе набор смайлов и файл кучей str_replace для их вывода =))))
https://visavi.net/topics/8154/148721
Обработка смайлов СтаниславTue, 13 Apr 2010 13:27:42 +0400Сообщенияhttps://visavi.net/topics/8154/148721Вот так всегда, не поспишь ночь а под утро зацикливаешься на мелочи<img src="https://visavi.net/uploads/stickers/D.gif" alt="D"> с меня пиво за решение этой задачи))
https://visavi.net/topics/8154/148714
Обработка смайлов LugaroTue, 13 Apr 2010 13:20:15 +0400Сообщенияhttps://visavi.net/topics/8154/148714Вот собственно функция кодирования-декодирования смайлав <br>
<pre class="prettyprint"><?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);
}
?></pre>
https://visavi.net/topics/8154/148705
Обработка смайлов LugaroTue, 13 Apr 2010 13:13:41 +0400Сообщенияhttps://visavi.net/topics/8154/148705Я для обработки смайлов использую файл C:\Program Files\QIP Infium\Smilies\Animated\_define.ini с квипа, так всё то очень хорошо и удобно, даже без циклов обхожусь, но вот возникает проблема, смайлов то много и страдаю ссылки, есть какие то идеи как сохранить целостность ссылки? регуляркой заменять смайлы не хочется, я вот думаю мажет перед обработкой извлекать все ссылки preg_match_all а потом после обработки смайлов опять брать preg_match_all и выбирать все ссылки но учитывать в них <br>
<img src="/image/smiles/...gif" alt=""/> и делать чтото типа <br>
foreach($url2 AS $key=>$txt){<br>
$msg = str_replace($url2[$key][0], $url2[$key][0], $msg);<br>
}<br>
Но вот незнаю как правильно составить регулярку чтоб извлечь ссылки во второй массив, с учетом что в них может быть <img src="/image/smiles/[0-9].gif" alt=""/>
https://visavi.net/topics/8154/148697
Обработка смайлов LugaroTue, 13 Apr 2010 12:56:42 +0400Сообщенияhttps://visavi.net/topics/8154/148697