Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Замена ссылок в wap-чате.
 
 автор: Витос   (05.05.2007 в 00:16)   письмо автору
 
 

Такое дело, подскажите как сделать так, чтоб юзер когда вводил wap.site.ru, то ему выводило wap.mysait.ru. Антиреклама нужна в чат)) Или чтоб при вводе хттп:// выводило ссылку на мой сайт...

   
 
 автор: cheops   (05.05.2007 в 01:57)   письмо автору
 
   для: Витос   (05.05.2007 в 00:16)
 

Не понятно... домены wap.site.ru и wap.mysait.ru принадлежат вам?

   
 
 автор: Binura   (05.05.2007 в 05:09)   письмо автору
 
   для: cheops   (05.05.2007 в 01:57)
 

через регулярнные выражения. =))

   
 
 автор: CrazyAngel   (05.05.2007 в 11:01)   письмо автору
 
   для: Витос   (05.05.2007 в 00:16)
 

помоему этого никак не сделать, потому, что как различить комп входит или телефон? все заголовки можно подделать...

может все ip провайдеров wap... хотя хз

   
 
 автор: kasmanaft   (05.05.2007 в 13:48)   письмо автору
 
   для: CrazyAngel   (05.05.2007 в 11:01)
 

о_0 вы о чем?
___________________________
Если правильно понял, то можно попробовать таким рег. выражением:

<?php
$str 
"все быстро зайдите на wap.site.ru!!!";
echo 
$str preg_replace("#(http://)?wap\.[a-z0-9_\.-]+?\.[a-z]{2,4}#i""\\1wap.mysite.ru"$str);
//echo $str = preg_replace("#(http://)?wap\.[a-z0-9_\.-]+?\.(com|info|ru|kz|biz|net)#i", "\\1wap.mysite.ru", $str);
?>

(если хотите защититься от wap.site.travel, wap.site.museum и т.д. можно увеличить длину с 4 до побольше {2,4} )

   
 
 автор: Витос   (05.05.2007 в 13:52)   письмо автору
 
   для: CrazyAngel   (05.05.2007 в 11:01)
 

Хеопс, нет, я на примере просто показал. Сайт мой nebesa.us. Вот. Я хочу, чтоб было так: заходит плохой рекламщик в чат и пишет "Заходите на мой сайт wap.vasyapupkin.ru", а в чат вывело "Заходите на мой сайт nebesa.us"... Обязательно регулярные выражения?

   
 
 автор: kasmanaft   (05.05.2007 в 14:24)   письмо автору
 
   для: Витос   (05.05.2007 в 13:52)
 

> Обязательно регулярные выражения?
угу ... по крайней мере с ними легче.

   
 
 автор: Витос   (05.05.2007 в 15:18)   письмо автору
 
   для: kasmanaft   (05.05.2007 в 14:24)
 

kasmanaft, спасибо тебе огромное! Рэспект!
Может кто то еще покажет куда именно поставить код? В файл ставил, что сообщение отправляет.. Вот он [url]nebesa.us/chat.txt[/url]. Ставил код после строки

if($row["level"]>6)$msg = eregi_replace("((http://))((([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z;]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((/|\?)[a-z0-9~#%&'_\+=:;\?\.-]*)*)", "<a href=\"\\0\">\\3</a>", $msg); 

(319 строка), так ошибку выдает. Пробывал в конфигурационный - тоже ошибка. Думал поставлю без проблем. Скажите куда, пожалуйста...

   
 
 автор: Витос   (08.05.2007 в 00:35)   письмо автору
 
   для: Витос   (05.05.2007 в 15:18)
 

Наставил седня антирекламы)) Но появилось еще пару вопросиков

$str = "все быстро зайдите на wap.site.ru!!!";
echo $str = preg_replace("#(http://)?wap\.[a-z0-9_\.-]+?\.[a-z]{2,4}#i", "\\1wap.mysite.ru", $str); // не дает пройти "wap."
echo $str = preg_replace("#(http://)?wap\.[a-z0-9_\.-]+?\.(com|info|ru|kz|biz|net)#i", "\\1wap.mysite.ru", $str); // а это?

Люди, а как запретить .....ru ......us .....com. Т.е. как запретить зоны домена? Поясните плз.

   
 
 автор: kasmanaft   (08.05.2007 в 06:44)   письмо автору
 
   для: Витос   (08.05.2007 в 00:35)
 

Тут два варианта, делающих практически одно и то же ... на выбор.
Первый не пропустит wap.bla_bla_bla.acbd, wap.bla.bla.bla.com.bzzz и т.д. - строка начинается с wap, далее без пробелов точки, буквы, цифры и т.д. , после последней точки - от 2-х до 4-х букв.
Второй: домен - не просто 2-4 буквы, а конкретные com, biz и т.д. Надо самому перечислить все, что нужно.
В обоих случаях строки могут начинаться на http://
ЗЫЖ убери второй вопрос ( _\.-]+?), он тут лишний.

   
 
 автор: Витос   (08.05.2007 в 12:57)   письмо автору
 
   для: kasmanaft   (08.05.2007 в 06:44)
 

kasmanaft, толкнул на мысль, я еще

$msg = preg_replace("#(http://)?[a-z0-9_\.-]+?\.(com.ua|ua|in||com|info|ru|kz|us|biz|net|wab.ru|kmx.ru|wen.ru|wml.su)#i", "\\1nebesa.us", $msg);

вставил.
Спасибо огромное помог разобраться и сделать мощную антирекламу)) Тебя как зовут?

   
 
 автор: Trianon   (08.05.2007 в 13:38)   письмо автору
 
   для: Витос   (08.05.2007 в 12:57)
 

Ну ну.
И когда кому-нибудь потребуется сообщить url-адрес вне связи с какой-либо рекламой, как он это будет делать?

   
 
 автор: kasmanaft   (08.05.2007 в 17:22)   письмо автору
 
   для: Trianon   (08.05.2007 в 13:38)
 

Ыыы, через пробел адрес напишет :D
Витос, это секретная информация, которой владеет одын гугл, да и тот не каждому расскажет. А wab.ru, com.ru все же лишнее, достаточно и просто .ru :)

   
 
 автор: Trianon   (08.05.2007 в 17:25)   письмо автору
 
   для: kasmanaft   (08.05.2007 в 17:22)
 

Претензии не к Вам, в конце концов, идея же не Ваша....
Но доведись мне напороться на такой лятский фильтр, то через пробел, или еще какой другой символ я бы стал писать имя владельца сервера.

   
 
 автор: Unkind   (09.05.2007 в 00:00)   письмо автору
 
   для: Trianon   (08.05.2007 в 17:25)
 

Но дело в том, что WAP-чат это такая среда...В которой в одном случае из пяти понадобится написать ссылку с благими целями. Может (есть небольшой шанс), что Витос разрешит писать ссылки "провереным" пользователям. Скажем, тем, у кого больше ста постов и кто уже не первый день в чате.

   
 
 автор: Trianon   (09.05.2007 в 00:11)   письмо автору
 
   для: Unkind   (09.05.2007 в 00:00)
 

Вот как? То есть там в принципе рассадник спама?
Буду знать :)

   
 
 автор: Unkind   (09.05.2007 в 00:25)   письмо автору
 
   для: Trianon   (09.05.2007 в 00:11)
 

Да это и не удивительно. В WAP есть несколько конструкторов сайтов, на которых приблизительно четверть миллиона сайтов. Каждый, создав там сайт мечтает раскрутиться. Ничего умнее, как заходить в чаты и гостевые с криками "Зайдите ко мне на сайт! Я вам даже з** подотру! Ну зайдите!" эти "строители" не находят...

   
 
 автор: Витос   (09.05.2007 в 01:22)   письмо автору
 
   для: Unkind   (09.05.2007 в 00:25)
 

Вот, да и не один пятый, а один десятый наверное.. Поставлю тем, у кого больше 500 хостов и все.. Ща пороюсь в Гуглике))

   
 
 автор: Витос   (09.05.2007 в 16:53)   письмо автору
 
   для: Витос   (09.05.2007 в 01:22)
 

Мне еще интересно, как с помощью рерулярных выражений сделать разрешенные символы, т.е, надо AZazАЯая.,-_=+()*?:%;№"!/\|&^$#@`, вот эти например, чтоб в сообщене можно было только вводить..

   
 
 автор: kasmanaft   (10.05.2007 в 08:13)   письмо автору
 
   для: Витос   (09.05.2007 в 16:53)
 


$message = preg_replace("#[^все_что_разрешено_вводить]#", "", $message);
$message = preg_replace("#[то_чего_вводить_нельзя]#", "", $message);

Опять на выбор... Возможно, некоторые символы придется экранировать: \? \* - методом научного тыка или гоу читать мануал. "a-z" все равно что "abcd...z", удачи ;)

   
 
 автор: Витос   (10.05.2007 в 14:52)   письмо автору
 
   для: kasmanaft   (10.05.2007 в 08:13)
 

Рекламу я убрал, спасибо, но сейчас у меня вся проблема в том, что есть в Виндовсе некая Таблица символов, которая находиться по адресу Пуск-Все программы-Стандартные-Служебные-Таблица символов. В ней есть некоторые знаки.. В раскладке Arial в 39 строке есть 3 интересных символа..палочки с квадратиком и полуквадратиками наверху... Дело в том, что если какой то из этих символов написать в чат, то сообщения переворачиваються задом на перед... Вот. Если эти символы написать на форуме, то вот что выходит:
1ый - &#8236;&#8236;&#8236;&#8236;
2ой - &#8236;&#8236;&#8236;&#8236;&#8236;&#8236;&#8238;&#8238;
3ий - &#8236;&#8236;&#8236;&#8236;&#8236;&#8236;&#8238;&#8238;&#8237;&#8237.

Ну вообщем я попробывал с помощью регулярных выражений, как показал kasmanaft запретить эти символы... Запретил я так:
$msg = preg_replace("#[\&\#8236;\&\#8238;\&\#8237;]#", "", $msg);
Что вышло...Когда ставлю этот первый символ, то выходит пустое сообщение - отлично!
Ставлю второй - тоже пустое - еще лучше!!
Но стоит мне поставить 3ий, а именно
&#8236;&#8236;&#8236;&#8236;&#8236;&#8236;&#8238;&#8238;&#8237;&#8237;&#8237;&#8237;&#8236;&#8237;&#8237;&#8237;&#8238;&#8238;
Как сообщения переворачиваються...
Ну почему так, люди, как это исправить? У меня уже 2 недели это с головы не выходит, но никак не могу придумать ничего((( ПОМОГИТЕ! Пожалуйстаааа!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования