Интересует такой вопрос. Допустим у нас есть строка $srt, в ней ВОЗМОЖНО есть подстрока с символом @ (тобишь, email), нам ее нужно как-то найти и ЗАМЕНИТЬ на новую строку. Вопрос - как?

Желательно это было бы сделать без использования регулярных выражений, т.к. в них еще не ориентируюсь совсем, как китайская грамота для меня. Хорошо бы функцию explode заиспользовать

Объясню зачем нужно выцеплять email: юзер заполняет поле "Контактная информация", а мы ее должны опубликовать, защитив email от спама

Спустя 19 минут, 50 секунд (6.02.2011 - 00:56) Dron19 написал(а):
конкретную строку приведи
Спустя 2 минуты, 22 секунды (6.02.2011 - 00:58) Dron19 написал(а):
из которой нужно мыло забрать
Спустя 4 минуты, 12 секунд (6.02.2011 - 01:02) Invis1ble написал(а):
explode() здесь не причем. Только через регулярки
Спустя 3 минуты, 39 секунд (6.02.2011 - 01:06) Dron19 написал(а):
короче пусть сам делает, раз ему пытаются помочь, а он молчит
Спустя 7 минут, 49 секунд (6.02.2011 - 01:14) Dron19 написал(а):
последний раз спрашиваю, покажи свою строку и скажи, что ты хочешь из нее получить?
Спустя 19 минут, 43 секунды (6.02.2011 - 01:33) Turboworld1 написал(а):
Сорри, не видел, что ответили мне...
Пример например такой:
Координаты для связи:
icq 1234567,
email: admin@admin.com,
телефон 123-45-67.
А нужно выцарапать отсюда admin@admin.com ну и заменить затем на вывод функции, например такой antispam('admin@admin.com');
Как-то так...
P.S.: Как вариант - можно разбить весь текст на 3 подстроки - строка ДО мыла, само мыло и строка ПОСЛЕ мыла. А затем все склеить, заменив мыло (функция antispam у меня уже есть).
Пример например такой:
Координаты для связи:
icq 1234567,
email: admin@admin.com,
телефон 123-45-67.
А нужно выцарапать отсюда admin@admin.com ну и заменить затем на вывод функции, например такой antispam('admin@admin.com');
Как-то так...

P.S.: Как вариант - можно разбить весь текст на 3 подстроки - строка ДО мыла, само мыло и строка ПОСЛЕ мыла. А затем все склеить, заменив мыло (функция antispam у меня уже есть).
Спустя 6 минут, 30 секунд (6.02.2011 - 01:40) Invis1ble написал(а):
Могу тебе показать пример, а ты учи регулярки, чтоб понять как он работает:
preg_match_all('#[\pL\pN-]+(\.[\pL\pN-]+)*@\pL+(\.[\pL\pN-]+)*\.[\pL]{2,6}#iu', $text, $matches);
var_dump($matches);
Спустя 3 минуты, 25 секунд (6.02.2011 - 01:43) Turboworld1 написал(а):
А что этот пример делает-то?

Спустя 7 минут, 49 секунд (6.02.2011 - 01:51) Invis1ble написал(а):
Turboworld1
а ты запусти этот код, предварительно записав в переменную $text текст с адресами e-mail и сам увидишь
а ты запусти этот код, предварительно записав в переменную $text текст с адресами e-mail и сам увидишь

Спустя 4 минуты, 3 секунды (6.02.2011 - 01:55) Turboworld1 написал(а):
Записал:
Вывелось:
array(3) { [0]=> array(0) { } [1]=> array(0) { } [2]=> array(0) { } }
Что я мог из этого понять? :blink: ( <-- что-то смайлы перестали отображаться)
$text='Координаты для связи:
icq 1234567,
email: admin@admin.com,
телефон 123-45-67.
';
preg_match_all('#[\pL\pN-]+(\.[\pL\pN-]+)*@\pL+(\.[\pL\pN-]+)*\.[\pL]{2,6}#iu', $text, $matches);
var_dump($matches);
Вывелось:
array(3) { [0]=> array(0) { } [1]=> array(0) { } [2]=> array(0) { } }
Что я мог из этого понять? :blink: ( <-- что-то смайлы перестали отображаться)
Спустя 6 минут, 31 секунда (6.02.2011 - 02:02) Invis1ble написал(а):
Turboworld1
сохрани скрипт в кодировке utf-8. Регулярка на юникод рассчитана
сохрани скрипт в кодировке utf-8. Регулярка на юникод рассчитана
Спустя 19 часов, 7 минут, 55 секунд (6.02.2011 - 21:09) Turboworld1 написал(а):
Блин... Не хочется мне из-за одной маленькой функции пересохранять все страницы сайта в utf-8... можно так поиметь гемор с кодировками в добавлении в БД, да и с выводом тоже...
Других-то вариантов нет?
Других-то вариантов нет?

Спустя 7 минут, 5 секунд (6.02.2011 - 21:17) two написал(а):
Turboworld1
Больше будет этого если оставишь всё как есть...
Кодировка utf-8 на данный момент самая оптимальная!
Больше будет этого если оставишь всё как есть...
Кодировка utf-8 на данный момент самая оптимальная!
Спустя 2 минуты, 49 секунд (6.02.2011 - 21:19) Snus написал(а):
Turboworld1
$text='Координаты для связи:
icq 1234567,
email: admin@admin.com,
телефон 123-45-67.
';
$text = iconv('Windows-1251', 'UTF-8', $text);
preg_match_all('#[\pL\pN-]+(\.[\pL\pN-]+)*@\pL+(\.[\pL\pN-]+)*\.[\pL]{2,6}#iu', $text, $matches);
var_dump($matches);
Спустя 11 дней, 19 часов, 47 минут, 50 секунд (18.02.2011 - 17:07) Turboworld1 написал(а):
Опробовал последний код - выдает три результата, два из которых ПУСТЫЕ...
=/
=/