Обработка смайлов - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - 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 Обработка смайлов ramzes Tue, 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">&lt;?php function smiles($msg, $back = false) { $file = file($_SERVER&#91;&#039;DOCUMENT_ROOT&#039;] . &#039;/local/smiles.dat&#039;); $smiles = unserialize($file&#91;0]); if(!$back){ //Делаем дам ссылок preg_match_all(&#039;#(http(s)?&#58;//).*?(\s|$)#si&#039;, $msg, $url); $msg = preg_replace(&#039;#((http(s)?&#58;//).*?(\s|$))#si&#039;, &#039;&lt;link&gt;&#039;, $msg); //Обработка $msg = strtr($msg, $smiles); //Востанавливаем покацаные ссылки preg_match_all(&#039;#&lt;link&gt;#i&#039;, $msg, $url2); $msg = str_replace($url2&#91;0], $url&#91;0], $msg); }else{ //Декодирование $msg = strtr($msg, array_flip($smiles)); } return $msg; } ?&gt;</pre> https://visavi.net/topics/8154/148938 Обработка смайлов Lugaro Tue, 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 Обработка смайлов ramzes Tue, 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(&#039;|&lt;img src=\&quot;smiles\/(.*?)\.gif\&quot; alt=\&quot;\&quot; \/&gt;&#039;|i&#039;,&#039;\1&#039;,$msg);<br> типа того<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> </blockquote> В моем случае так не выйдет.<br> В обшем задам вопрос немного по другому, помогите составить регулярку чтоб она из <pre class="prettyprint">http&#58;//test1.ru/forum/?mod=&lt;img src=&quot;/image/smiles/001.gif&quot; alt=&quot;&quot;/&gt;dd текс</pre>Выбирала <pre class="prettyprint">http&#58;//test1.ru/forum/?mod=&lt;img src=&quot;/image/smiles/001.gif&quot; alt=&quot;&quot;/&gt;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 Обработка смайлов Lugaro Tue, 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 Обработка смайлов ramzes Tue, 13 Apr 2010 13:53:20 +0400 Сообщения https://visavi.net/topics/8154/148742 5. <strong>ramzes</strong>, как домой прийду отвечу) на улице ша https://visavi.net/topics/8154/148737 Обработка смайлов Lugaro Tue, 13 Apr 2010 13:43:16 +0400 Сообщения https://visavi.net/topics/8154/148737 4. <strong>SNELS точно монах</strong>, Да спасибо)) у меня стоит главная задача в том чтоб с легкостью можно было юзать паки смайлов под квип, так то уже всё реализовано и довольно коротко, осталось только ссылки спасти <img src="https://visavi.net/uploads/stickers/D.gif" alt="D"> https://visavi.net/topics/8154/148735 Обработка смайлов Lugaro Tue, 13 Apr 2010 13:40:12 +0400 Сообщения https://visavi.net/topics/8154/148735 На ум приходит только модификация функции обработки ссылки.. Перед превращением ее в живую ссылку обработать функцией обратной от смайлов $msg = preg_replace(&#039;|&lt;img src=\&quot;smiles\/(.*?)\.gif\&quot; alt=\&quot;\&quot; \/&gt;&#039;|i&#039;,&#039;\1&#039;,$msg);<br> типа того<img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> https://visavi.net/topics/8154/148728 Обработка смайлов ramzes Tue, 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 Обработка смайлов Lugaro Tue, 13 Apr 2010 13:20:15 +0400 Сообщения https://visavi.net/topics/8154/148714 Вот собственно функция кодирования-декодирования смайлав <br> <pre class="prettyprint">&lt;?php function smiles($msg, $back = false) { $file = file($_SERVER&#91;&#039;DOCUMENT_ROOT&#039;] . &#039;/local/smiles.dat&#039;); $smiles = unserialize($file&#91;0]); return $back ? strtr($msg, array_flip($smiles)) &#58; strtr($msg, $smiles); } ?&gt;</pre> https://visavi.net/topics/8154/148705 Обработка смайлов Lugaro Tue, 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> &lt;img src=&quot;/image/smiles/...gif&quot; alt=&quot;&quot;/&gt; и делать чтото типа <br> foreach($url2 AS $key=&gt;$txt){<br> $msg = str_replace($url2[$key][0], $url2[$key][0], $msg);<br> }<br> Но вот незнаю как правильно составить регулярку чтоб извлечь ссылки во второй массив, с учетом что в них может быть &lt;img src=&quot;/image/smiles/[0-9].gif&quot; alt=&quot;&quot;/&gt; https://visavi.net/topics/8154/148697 Обработка смайлов Lugaro Tue, 13 Apr 2010 12:56:42 +0400 Сообщения https://visavi.net/topics/8154/148697