Тема: Автозаміна смайлів на сайті
Привіт, люд! Потрібна ваша допомога, не можу рішення в інеті знайти... потрібно якось реалізувати автозаміну текстових смайлів на gif зображення? Наприклад :-) або : ) на
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → PHP → Автозаміна смайлів на сайті
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Привіт, люд! Потрібна ваша допомога, не можу рішення в інеті знайти... потрібно якось реалізувати автозаміну текстових смайлів на gif зображення? Наприклад :-) або : ) на
Подивіться як на реплейсі організовано, Ваше повідомлення виглядає так (control + u)
[code=html]<p>Привіт, люд! Потрібна ваша допомога, не можу рішення в інеті знайти... потрібно якось реалізувати автозаміну текстових смайлів на gif зображення? Наприклад :-) або : ) на <img src="http://replace.org.ua/extensions/nya_smiles/img/ab.gif" alt=":)" /></p>[/code]
т.е. просто шукаєте смайл і замінюєте (str_replace() наприклад) на картинку в розмітці html.
str_replace найпростіше рішення, проте прийдеться викликати його велику кількість разів (для кожного смайлу).
Можна скористатись функцією strt, але там вже буде проблема з пробілами. Смайли краще заміняти лише там де є пробільні символи.
Ну як варіант використати регулярні вирази, але залишається така ж проблема як і в str_replace.
На цьому форумі використовуються регулярні вирази.
До речі, може хтось не в курсі, є дуже класний сайт для перевірки регулярних виразів (хоча є невеличка відмінність між регулярками в JS та PHP)
str_replace найпростіше рішення, проте прийдеться викликати його велику кількість разів (для кожного смайлу).
Можна скористатись функцією strt, але там вже буде проблема з пробілами. Смайли краще заміняти лише там де є пробільні символи.
Ну як варіант використати регулярні вирази, але залишається така ж проблема як і в str_replace.
На цьому форумі використовуються регулярні вирази.
Не треба циклів або повторів функції,str_replace приймає в аргумент масиви.
Ось прототип)
$smileMap = [ ' =)'=>' 1.gif' ];
Тоді вже так (щоб отримати html з картинками, а не їх іменами):
$smileMap = [
' =)'=>' <img src=1.gif>'
];
Або можна спершу описати мапу імен, а тоді пройтися по ній foreach'ем і позамінювати імена на теги.
str_replace найпростіше рішення, проте прийдеться викликати його велику кількість разів (для кожного смайлу).
Можна скористатись функцією strt, але там вже буде проблема з пробілами. Смайли краще заміняти лише там де є пробільні символи.
Ну як варіант використати регулярні вирази, але залишається така ж проблема як і в str_replace.
На цьому форумі використовуються регулярні вирази.
Ну, я використав пробіл тому, що тут йде автозаміна смайлів, мав на увазі 2 стандартних...
А з масивами я мало працював, буду пробувати
$you_message = "Посмішка :) радість =), сум :(";
$text_smiles = array(":)", "=)", ":(");
$img_smiles = array("{{sm1.gif}}", "{{sm2.gif}}", "{{sm3.gif}}");
$you_message = str_replace($text_smiles, $img_smiles, $you_message);
echo $you_message;
Якось так... варіант для шаблонізатора або ж одразу можна вставити html розмітку.
щось подібне знайшов на те, що мені потрібно... ajaxs.ru/lesson/php/7-zamena_tekstovyh_smajlikov_na_graficheskie.html
щось подібне знайшов на те, що мені потрібно... ajaxs.ru/lesson/php/7-zamena_tekstovyh_smajlikov_na_graficheskie.html
Я вам те саме написав. Тільки без html коду, бо я не знаю, де і як у вас називаються файли.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися