הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 11-12-08, 20:04   # 1
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 37
הודעות: 710

vadimg88 לא מחובר  

אם אתה מנסה להתאים כתובת מייל ולבדוק אם היא אכן תואמת לכתובת מייל נכונה אני הייתי עושה את זה ככה:

PHP קוד:
<?php

$email 
"myname@mydomain.com";
$regex "/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,4})(\]?)$/";

if ( 
preg_match$regex$email) )
{
    echo 
"Regex matched";
    exit;
}

echo 
"Regex did not match!";


?>
  Reply With Quote
ישן 11-12-08, 23:01   # 2
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

בשביל מה הסוגריים המרובעים והמספרים בסיומת?
למשל עבור:

PHP קוד:
$email "myname@[a.1]"
הביטוי שלך יחזיר:

קוד:
Regex matched
ובכל מקרה, ביטויים רגולריים עבור איימיילים לדעתי לעולם לא יהיו מושלמים.
אבל זה מה יש.

השיטה האלטרנתיבית, גם היא לא מושלמת היא לבדוק האם לדומיין אחריי ה@ יש mx.
אבל היא גם יודעת להגיד מתי כתובת שניראת לגטימית היא לא (למרות שכאן זה גם הצד החלש של השיטה)

משהו כזה:
PHP קוד:
<?php
error_reporting
E_ALL );

$emails = Array();

$emails[] = "SDF@freebsd.co.il"// looks ok, right? but no MX, should fail the check.
$emails[] = "SDF@nix.co.il"// looks ok and passes the check.
$emails[]  = "user@hosts.co.il"// ok
$emails[]  = "user@gmail.com@walla.co.il"// fail
$emails[]  = "user@someunkown"// fail

foreach ( $emails as $email )
{
        
$data explode("@"$email);
        
$ct count($data);
        if ( 
$ct || $ct <= )
        {
                
printf(">> FAIL: Email %s failed the check.\n"$email);
                continue;
        }

        
$hostname $data[1];

        if ( 
getmxrr  $hostname$mxhosts$weight ) )
        {
                if ( !
count$mxhosts ) )
                {
                        
printf(">> FAIL: NO MX for email %s\n"$email);
                }
                else
                {
                        
printf(">> OK: Email %s were OK.\n"$email);
                }
        }
        else
        {
                
printf(">> FAIL: DNS failed for email %s\n"$email);
        }
}
__________________
FreeBSD, a *nix operating system
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

Tags
preg_match


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 23:48.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ