شرح دالة preg_match للتحقق من الايميل ؟
كيف استخدم دالة preg_match للتحقق من الايميل مع العلم اني رايت امثلة في الانترنت ولكن لم افهم معنى الرموز المستخدمة مع هذه الدالة؟
تاريخ البداية: 9 / مايو / 2012 الساعة 4:54
اخر نشاط: 9 / مايو / 2012 الساعة 13:47
php
preg_match
email
2 إجابات
ان كنت تبحث عن البساطة
function Email($string){ return (bool)preg_match("/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))+(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i", $string); }فهى تعتمد على التعابير القياسية regular expression بواسطة: علاء 2 من 2 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا
دالة preg_match تستعمل لاستخراج شىء معين من نص او شىء كهذا اما للتحقيق من الاميل يمكنك استعمال اشياء اخرى بديلة مثل
filter_var('[email protected]', FILTER_VALIDATE_EMAIL)ودالة preg_match تستعمل ايضا لتتحقق من الاميل عن طريق شىء كهذا <?php function email_valid($temp_email) { ######## Three functions to HELP ######## function valid_dot_pos($email) { $str_len = strlen($email); for($i=0; $i<$str_len; $i++) { $current_element = $email[$i]; if($current_element == "." && ($email[$i+1] == ".")) { return false; break; } else { } } return true; } function valid_local_part($local_part) { if(preg_match("/[^a-zA-Z0-9-_@.!#$%&'*\/+=?^`{\|}~]/", $local_part)) { return false; } else { return true; } } function valid_domain_part($domain_part) { if(preg_match("/[^a-zA-Z0-9@#\[\].]/", $domain_part)) { return false; } elseif(preg_match("/[@]/", $domain_part) && preg_match("/[#]/", $domain_part)) { return false; } elseif(preg_match("/[\[]/", $domain_part) || preg_match("/[\]]/", $domain_part)) { $dot_pos = strrpos($domain_part, "."); if(($dot_pos < strrpos($domain_part, "]")) || (strrpos($domain_part, "]") < strrpos($domain_part, "["))) { return true; } elseif(preg_match("/[^0-9.]/", $domain_part)) { return false; } else { return false; } } else { return true; } } // trim() the entered E-Mail $str_trimmed = trim($temp_email); // find the @ position $at_pos = strrpos($str_trimmed, "@"); // find the . position $dot_pos = strrpos($str_trimmed, "."); // this will cut the local part and return it in $local_part $local_part = substr($str_trimmed, 0, $at_pos); // this will cut the domain part and return it in $domain_part $domain_part = substr($str_trimmed, $at_pos); if(!isset($str_trimmed) || is_null($str_trimmed) || empty($str_trimmed) || $str_trimmed == "") { $this->email_status = "You must insert something"; return false; } elseif(!valid_local_part($local_part)) { $this->email_status = "Invalid E-Mail Address"; return false; } elseif(!valid_domain_part($domain_part)) { $this->email_status = "Invalid E-Mail Address"; return false; } elseif($at_pos > $dot_pos) { $this->email_status = "Invalid E-Mail Address"; return false; } elseif(!valid_local_part($local_part)) { $this->email_status = "Invalid E-Mail Address"; return false; } elseif(($str_trimmed[$at_pos + 1]) == ".") { $this->email_status = "Invalid E-Mail Address"; return false; } elseif(!preg_match("/[(@)]/", $str_trimmed) || !preg_match("/[(.)]/", $str_trimmed)) { $this->email_status = "Invalid E-Mail Address"; return false; } else { $this->email_status = ""; return true; } } ?> بواسطة: MacOS 3 من 3 أشخاص وجدو هذه الاجابة مفيدة. هل وجدتها؟ نعم لا وصلت الفكرة شكرا على الاجابة ولكني افكر في استخدام التحقق عن طريق javascript سيكون اسرع على المتصفح نصيحة اياك ان تستعمل الجافا سكربت فقط للتأكيد من اى شىء لان يمكن غلقها من المتصفح ويوجد انظمة لا تدعم اصلا الجافا سكربت وبذلك لن يكون هناك تأكيد |