Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Чат+смайлы


Автор: Alix36 27.2.2007, 22:22
1.нужно заблокировать отображение интернет адресов, типа rrr.ru or www.fff.com.ua
и так далее. 
я пробовал так
Код

$message=ereg_replace(" *.com","",$message);

Но он лиш скрывает в адресе .com а не блокирует все сообщение.
В идеале чтобы это сообщение не отображалось никак вообще.
2.Я почитал темы про ограничения количества смайлов в одной строке, но там есть ограничение коды смайлов должны быть типа :*: а у меня 69 смайлов, и всех их переписывать сильно не хочется, можно как-нибудь по-другому это сделать? 
3.Имеет ли смысл код смайлов заменять на смайлы на стороне клиента(т.е. с помощью JS) ?
4.в чем существенные отличия функций str_replace и ereg_replace? в мане написано только что рекомендуют первую функцию...

M
PARROT
Модератор: Пожалуйста, один топик - один вопрос.

Автор: mishaSL 28.2.2007, 12:51
Цитата(Alix36 @  27.2.2007,  22:22 Найти цитируемый пост)
в чем существенные отличия функций str_replace и ereg_replace? в мане написано только что рекомендуют первую функцию...


str_replace() - функция для простой замены
ereg_replace - функция для замены с использованием регулярных выражений формата POSIX

Цитата(Alix36 @  27.2.2007,  22:22 Найти цитируемый пост)
Но он лиш скрывает в адресе .com а не блокирует все сообщение.

Вопрос не совсем понятен. Что на что заменять и что отображать а что нет...


Автор: Alix36 28.2.2007, 13:45
mishaSL, если юсер пишет "Все заходите на www.rambler.ru!!!"
Нужно чтобы это сообщение ни у кого не отображалось.

Автор: corpsehunter 28.2.2007, 13:58
Попробуй так:
Код

$message=ereg_replace("([a-zA-Z0-9-_]+\.)+(ru|com|org|ua)","",$message);

Должно вырезать все адреса, с указанными расширениями.

Автор: CyClon 28.2.2007, 14:50
Я бы не рекомендовал, лучше адреса просто заменять на <hide> или что-то вроде этого...

Код
<?php

$message = 'Все все, заходите на vingrad.ru!!!';

$message = preg_replace('%[^ ]+\.(com|net|org|ru|info)%', '^hide url^', $message);

echo $message;

?>


Смайлы:

Код
<?php

$message = 'Привет всем :blink: :) !!!';

$message = str_replace(':)', '<img src="smiles/smile.gif" alt="" />', $message);
$message = preg_replace('%:(.+):%U', '<img src="smiles/\\1.gif alt="" />', $message);

echo $message;

?>

Автор: Alix36 28.2.2007, 15:04
спасибо.

Добавлено @ 15:06 
а по поводу этого?
Цитата

2.Я почитал темы про ограничения количества смайлов в одной строке, но там есть ограничение коды смайлов должны быть типа :*: а у меня 69 смайлов, и всех их переписывать сильно не хочется, можно как-нибудь по-другому это сделать? 
3.Имеет ли смысл код смайлов заменять на смайлы на стороне клиента(т.е. с помощью JS) ?

Автор: corpsehunter 28.2.2007, 15:21
Цитата(Alix36 @ 27.2.2007,  22:22)
2.Я почитал темы про ограничения количества смайлов в одной строке, но там есть ограничение коды смайлов должны быть типа :*: а у меня 69 смайлов, и всех их переписывать сильно не хочется, можно как-нибудь по-другому это сделать? 

А какая разница, какой вид имеют смайлы? Если будешь менять с помощью пхп, то заводишь перменную, при каждой замене ее инкрементируешь, когда она достигла определенного значения, делаешь то, что тебе надо. Как вариант, убираешь все смайлы или выводишь их текстом.
А зачем вообще ограничение количества смайлов? smile Мне они нравятся smile  smile 
Цитата(Alix36 @ 27.2.2007,  22:22)
3.Имеет ли смысл код смайлов заменять на смайлы на стороне клиента(т.е. с помощью JS) ?

Думаю, не стоит. Во-первых, не стоит мешать пхп и ява-скрипт, а во-вторых, при замене на стороне клиента на странице должны храниться все адреса картинок, что, по моему не есть гут smile 

Автор: Alix36 1.3.2007, 14:26
corpsehunter, 
если ты с кем-то общаешься, а в это время какой-то нарушитель спокойства, пишет сообщение из смайлов, на весь экран... Эт не есть гуд.
Цитата

Думаю, не стоит. Во-первых, не стоит мешать пхп и ява-скрипт, а во-вторых, при замене на стороне клиента на странице должны храниться все адреса картинок, что, по моему не есть гут 

почему мешать не стоит, два абсолютно разных языка. Аргументируй.

Автор: MefIsT0feL 1.3.2007, 14:47
А ещё на с чет смайлов для оптимизации кода можно создать два массива (один с "кодами" смайлов, а второй на что этот "код" заменить)
Код

$arr1 = array(":)", ";-)");
$arr2 = array("<img src='image_to_replace1.gif'>", "<img src='image_to_replace2.gif'>")
$message = str_replace($arr1, $arr2, $message);

 smile 

Автор: corpsehunter 1.3.2007, 14:51
Цитата(Alix36 @ 1.3.2007,  14:26)

если ты с кем-то общаешься, а в это время какой-то нарушитель спокойства, пишет сообщение из смайлов, на весь экран... Эт не есть гуд.

Нормально, веселый, такой нарушитель smile Он с таким же успехом может написать (читай "скопипастить") пару глав из войны и мира smile 
Цитата(Alix36 @ 1.3.2007,  14:26)

почему мешать не стоит, два абсолютно разных языка. Аргументируй.

Просто это не очень хороший стиль программирования. Все-таки, главная причина, это хранение всех адресов картинок на страничке... Но все равно, решай сам.

Автор: Alix36 2.3.2007, 19:49
уговорили, смайлы ограничивать не буду =)
тока анти флуд будет тогда...15 сек.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)