Forum Webscript.Ru
Программирование => PHP => Тема начата: nobody от 28 Декабря 2001, 04:47:33
-
Возникла такая идея, что нужно написаь ответы на часто задаваемые вопросы, а то, что то они слишком часто в форуме проскакивают :)
1. Как опpеделить валидность e-mail?
function checkmail($mail){
if (eregi("^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*$",$mail)){
return TRUE;}
return FALSE;
}
-
Возникла такая идея, что нужно написаь ответы на часто задаваемые вопросы, а то, что то они слишком часто в форуме проскакивают
Эх, я уже давно подбиваю :), даже собирал список тем в форуме php.
-
Как опpеделить валидность e-mail?
вроде так if (eregi("^([a-z]|[0-9]|\\.|-|_)+@([a-z]|[0-9]|\\.|-|_)+\\.([a-z]|[0-9]){2,3}$", $email, $arr_vars) &&
!eregi("(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)", $email, $arr_vars))
$email=$email;
else $email="Аноним";
-
2. совет: preg в 10 раз быстрее ereg
-
Думаю этот FACK нужно засовывать рядом с темой движок. потому что из моего опыта, первое, что делает человек, узнав о PHP, это с большими глазами бежит спрашивать - ГДЕ ДОСТАТЬ ДВИЖОК?
:)
Кстати, о проверке мыла...у меня была функция, которая просто стучалась на сервер, и спрашивала, есть ли там такой клиент.
я сначала решила, что круто, а потом... ну скольких ников не разобрано на Hotmail.com или на mail.ru ... я вот ведь всегда даю левый адрес, если требуют мыло, а confirmation не присылают...
Типа fack@hotmail.com
что интересно, есть такой человек... я ему даже писала, он сказал - как вы достали меня прописывать, кто бы знал
:)
так что лучший наверно способ убедиться в валидности регистрации- послать мыло, требуещее подтверждения.
хотя это усложняет процесс, и не устраивает почти всех, а что делать, время то сейчас такое...с одной стороны спамер. с другой стороны ламер...
-
function correct_email($mail)
{
if (ereg(\'^[-!#$%&\\\'*+\\\\./0-9=?A-Z^_`a-z{|}~]+\'.\'@\'.\'[-!#$%&\\\'*+\\\\/0-9=?A-Z^_`a-z{|}~]+\\.\'.\'[-!#$%&\\\'*+\\\\./0-9=?A-Z^_`a-z{|}~]+$\', $mail)):
return $mail;
else:
return 0;
endif;
}
-
Могу подкинуть скриптов :)
-
FAQ конечно же нужен, но вот первым ИМХО должно быть там написано - это просьба научиться работать с мануалом и дать ссылку на мануал с комментариями (фактически аналог online-документации с php.net). С помощью этого мануала решаются почти все проблемы с php. Собственно с самим php проблемы возникают редко (у меня) - в основном проблемы возникают из-за незнания каких смежных тем (например SQL или XML) или проблема выбора наиболее быстрого и наименее ресуосоемкого алгоритма.
Поэтому в FAQ-е в начале большими буквами нужно написать:
Люди, читайте мануал
Сейчас в fido7.ru.php тоже начали мануал создавать и пока что там 4 вопроса расматривается:
1. Проверка e-mail
2. Проверка URL-а
3. Почему не показываются заапложенные файлы
4. Как определить последний ID в таблице?
Если интересно - могу ответы кинуть.
Если на форуме будут делать отдельный FAQ то наверное нужно описать разбиение монолитного текста (недавно Lion поднимал эту тему). И про работу с Excel нужно написать (тоже тема популярная). Да и про сессии упомянуть
Ну вот собственно и все что я хотел сказать :)
-
Все конечно знают, но вдруг :)
Есть такая штука- PEAR- ее почему-то вяло анонсируют на PHP.net, хотя штука это очень полезная.
Это депозиторий классов (читай скриптов) написанных В СООТВЕТСТВИИ со стандартами разработчиков PHP.
Почти у всех он установлен.
Скриптов то много в сетке, а вот надежныx и ПРОВЕРЕННЫX...
Так что рекомендую всем ознакомится.
Там есть все- если кому-то хочется сайт с возможностями PHP-net :)- так вот он весь выложен в этом PEAR.
И не только он.
Как только человек начинает думать по теме- то есть, какие функции быстрее работает, как кешировать правильно...
Документация написана разработчиками для разработчиков, все в тему.
Надеюсь, пригодится.
Вот их дом
http://www.pear.php.net
Вот документация
http://phpdocu.sourceforge.net/peardocs/
Есть и на русском. но очень КУЦАЯ..
http://pear.sourceforge.net/manual/
Касательно движка- я как всегда о своем о девичьем-
Рекомендую всем заинтересованным ознакомится со стандартом, который используют разработчики, чтобы знать, кто чего натворил в совместном проекте.
http://www.cvshome.org/
если кому-то интересно, как это работает для PHP-
http://cvs.php.net/
Но это в первую очередь представляет интерес для фанатов, и для людей, желающих знать мировые стандарты совместной работы.
ну или исходники опять таки посмотреть :)
То есть прочитав и освоив эту бяку, можно и нужно писать об этом в резюме- это батенька, говорит, что вы специалист.
-
Вот о чем я и говорю, нужно начать собирать вопросы и постипенно на них отвечать...
сделать тему в форуме в которую может добавлять сообщения только одминистратор, и выкладывать только проверенные и рабочие фрагменты...
И повесить в самом начале типа "Прежде чам задовать вопрос, ознакомтесь с FAQ". Тогда и в форуме не будет такое большое количество глупых вопросов....
-
doll_lena
Не хочу тебя разачаровывать, но пеар не так хорощ как кажется. Я смотрел несколько его крупных частей как кеширование и коннект к базе данных . Не спорю, код там правильный. Но реализация...
Только подключения класса кеширования (без его работы) у меня занимает 0.02 секунды. В то же время мой собственный кешер за эти 0.02 секунды не только успевает подключиться, но и еще обработать весь вывод.
Класс для баз данных - я не нашел там многих функция. Т.е. произведена полная кастрация для совместной работы со всеми базами. Хотя некоторые функции убранны абсолютно зря. Плюс опять - скорость работы из за навороченности кода PEAR существенно замедляется.
-
Понятное дело, что идеальных вещей мало в этом мире.
Но внимания этот проект безусловно заслуживает.
А насчет скорости- абсолютно прав. Скейлабилити пошла уже, в ущерб функциональности.
не будем вдаваться в философские проблемы программирования.:)
-
Вы, наверное, будете смеяться, но ни один, из вышеуказанных примеров валидации e-mail, не работает :(
-
естественно, потому что правилный вот этот:) :
if (!ereg("^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\\.)*([a-z0-9-]+)(\\.[a-z]{2,3}))$",$email)) {
$error= ">Неправильно введён Адрес электронной почты.
";
}
-
DimovD
да, правильно :)
А можно еще и так
if (!eregi("^[a-z0-9\\._-]+@[a-z0-9\\._-]+\\.[a-z]{2,4}\\$", $mail))
А они хотели в FAQ добавить.
М-да ...
-
Только {2,4} более правильно. Есть же еще зона .info.
-
ага, плюс museum и еще нек-рые :)
-
По-моему тему пора вернуться к теме, тлт перенестись во флейм :|
-
Вы, наверное, будете смеяться, но ни один, из вышеуказанных примеров валидации e-mail, не работает
ты чиво? работает ещё как работает