Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Класс подсветки e-mail, регулярка 
:(
    Опции темы
PARROT
Дата 18.11.2005, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Не получается написать класс подсветки для e-mail, в случае нахождения его в тексте сообщения форума.
Код

<?php
class mail {

        function Assim($text) {

                $text        = preg_replace("#^([a-z0-9]){1}[a-z0-9\-_.+]*([a-z0-9]){1}@[a-z0-9]{1,}(([a-z0-9]{1,}[a-z0-9\-\.]{0,1}[a-z0-9]{1,})|[a-z0-9]{1,})*\.[a-z]{2,4}$#i", "<a href=\"_blank\" mailto:\"\\1\">\\1</a>", $text);

        }
        }
?>
Привет, Вася!
<?
$text=mail::Assim($text);
$text="[email protected] Большое спасибо за сайт. Очень понравился! Простенько, но со вкусом. Приятно, что про нас написали. Сотрудник издательского отдела.";
echo $text;
?>

Результат: Не подсвечивается е-mail. smile



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Darhazer
Дата 18.11.2005, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: 1
Всего: 29



Привет,
Ты должен установить значения $text перед визове Assim:

Код

$text="[email protected] Большое спасибо за сайт. Очень понравился! Простенько, но со вкусом. Приятно, что про нас написали. Сотрудник издательского отдела.";
$text=mail::Assim($text);
echo $text;


Во вторие, у тебя HTML код:
Код
"<a href=\"_blank\" mailto:\"\\1\">\\1</a>"

Должен быт:
Код
"<a href=\"mailto:\\1\" target=\"_blank\">\\1</a>"




--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
Gold Dragon
Дата 18.11.2005, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 1
Всего: 71



так как не селён в регах, то напишу свою логику

- есть строка в которой в каком то месте стоит мыло ($stroka)
- с помощью регов вычленяем этот адрес ($email)
- потом добавляем теги $email_1 = "<a href....>".$email."</a>"
- потом заменяем строку на соответствующую $stroka = str_replace ($email, $email_1, $stroka) - (если я ничего не напутал)

где-то так..


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
PARROT
Дата 18.11.2005, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Так оно вообще ничего не печатает.
Код

<?php
class mail {

        function Assim($text) {

                $text        = preg_replace("#^([a-z0-9]){1}[a-z0-9\-_.+]*([a-z0-9]){1}@[a-z0-9]{1,}(([a-z0-9]{1,}[a-z0-9\-\.]{0,1}[a-z0-9]{1,})|[a-z0-9]{1,})*\.[a-z]{2,4}$#i", "<a href=\"mailto:\\1\" target=\"_blank\">\\1</a>", $text);

        }
        }
?>
Привет, Вася!
<?
$txt="[email protected] Большое спасибо за сайт. Очень понравился! Простенько, но со вкусом. Приятно, что про нас написали. Сотрудник издательского отдела.";
$txt=mail::Assim($txt);
echo $txt;
?>


Это сообщение отредактировал(а) PARROT - 18.11.2005, 12:47


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
-=Ustas=-
Дата 18.11.2005, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 6
Всего: 69



PARROT, у тебя этот метод function Assim($text) ничего не возвращяет. А надл бы return $text; еще поставить smile
Добавлено @ 13:34
Да и с регами у тебя проблемка была, короче вот, подправил:
Код

<?php

class mail {
    function Assim($text)
    {
        $text = preg_replace("/[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*/iS", "<a href=\"mailto:\\0\">\\0</a>", $text);

        return $text;
    }
}

?>

Привет, Вася!

<?

$txt = "[email protected] Большое спасибо за сайт. Очень понравился! Простенько, но со вкусом. Приятно, что про нас написали. Сотрудник издательского отдела.";
$txt = mail::Assim($txt);
echo $txt;

?>


Вот только что мне не понятно, так это для чего ради такой функции использовать класс?! smile


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
PARROT
Дата 18.11.2005, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Находит и подсвечивает, зато с регом какая-то беда:
Код

//html
Привет, Вася!  <a href="mailto:v" target="_blank">v</a> Большое спасибо за сайт. Очень понравился! 
Простенько, но со вкусом. Приятно, что про нас написали. Сотрудник издательского отдела.

Код

<?php

$text="Привет, Вася!  [email protected] Большое спасибо за сайт. Очень понравился! Простенько, но со вкусом. 
Приятно, что про нас написали. Сотрудник издательского отдела.";
        function Assim($text) {

                $text= preg_replace("#(\w|\d){1}(\w|\d|\-|_|\.|\+)+?(\w|\d){1}@((\w|\d){1,}(\-|\.){0,1}(\w|\d){1,})+?\.(\w){2,4}#", "<a href=\"mailto:\\1\" target=\"_blank\">\\1</a>", $text);
                return $text;

        }


$text=Assim($text);

?>
<? echo $text; ?>


Это сообщение отредактировал(а) PARROT - 18.11.2005, 13:38


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
-=Ustas=-
Дата 18.11.2005, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 6
Всего: 69



Я же тебя нормальный рабочий рег написал...!?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
PARROT
Дата 18.11.2005, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Да, спасибо, работает! УРА!!!
Цитата

Вот только что мне не понятно, так это для чего ради такой функции использовать класс?! 

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



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.