문자열이 PHP의 이메일 주소인지 확인합니다.
SQL 쿼리를 하려고 하는데 값이 이메일 주소인지 확인해야 합니다.확인 방법이 필요합니다.$user
이메일 주소입니다.테이블에 이런 사용자 값이 있기 때문입니다.
test
test2
test@example.com
test2@example.com
test392
test@example.net
기타 등등...
그렇게 해야겠다.$useremail
체크$user
이메일 주소인지 아닌지를 확인합니다.값을 갱신할 수 있도록WHERE user=test OR user=test@example.com
,기타.
$user = strtolower($olduser);
$useremail = "";
mysql_query("UPDATE _$setprofile SET user=$sn, fc=$fc WHERE user='$user' OR user='$useremail");
정규식이 없는 경우:
<?php
if(filter_var("some@address.com", FILTER_VALIDATE_EMAIL)) {
// valid address
}
else {
// invalid address
}
?>
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo 'This is a valid email address.';
echo filter_var($email, FILTER_VALIDATE_EMAIL);
// exit("E-mail is not valid");
}
else {
echo 'Invalid email address.';
}
이는 좋은 방법이 아니며 이메일이 존재하는지 확인하지 않지만 @ 및 도메인 확장자를 가진 이메일인지 확인합니다.
function checkEmail($email) {
$find1 = strpos($email, '@');
$find2 = strpos($email, '.');
return ($find1 !== false && $find2 !== false && $find2 > $find1);
}
$email = 'name@email.com';
if ( checkEmail($email) ) {
echo $email . ' looks like a valid email address.';
}
가장 간단한 방법은 정규 표현을 사용하여 전자 메일 주소를 확인하는 것입니다. 그러나 얼마나 정확할 수 있는지에 대해서는 이견이 있습니다.이 프로세스에 대해서는, 이하에 자세하게 설명하겠습니다.
MySQL에서 REGEXP를 사용하여 정규 표현에 따라 데이터베이스에서 선택할 수 있습니다.
http://dev.mysql.com/doc/refman/5.1/en/regexp.html
is_email() 함수는 문자열이 유효한 이메일 주소인지 아닌지에 대한 명확한 답변을 제공합니다.제가 아는 한, 다른 어떤 솔루션도 동일한 수준의 권한을 가지고는 이 작업을 수행할 수 없습니다.
내가 예시를 제대로 이해한다면, 너는 이것을 이렇게 사용할 것이다.
$user = strtolower($olduser);
$useremail = (is_email($user)) ? $user : '';
PHP 기본 제공 함수가 불완전합니다.나는 의 주요 저자이다.is_email()
그래서 제가 트럼펫을 불긴 했지만 다른 누구도 다시는 그러지 못하게 하려고 많은 노력을 기울였어요
정규 표현을 사용하여 입력 문자열이 전자 메일 주소와 일치하는지 확인할 수 있습니다.
<?php
$email = "someone@example.com";
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo "Valid email address.";
}
else {
echo "Invalid email address.";
}
?>
송신원: http://www.totallyphp.co.uk/code/validate_an_email_address_using_regular_expressions.htm
편집: 더 정확한 표현은 이 질문에 대한 Travis의 답변을 참조하십시오.
저는 수백 개의 사이트에서 이 기능을 오랫동안 사용해 왔습니다.완벽하지는 않지만, 잘못된 부정(또는 긍정)에 대해 불평해 본 적은 없습니다.
function validate_email($email) {
return (preg_match("/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/", $email) || !preg_match("/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/", $email)) ? false : true;
}
모두가 정규 표현을 올리고 있기 때문에, 저는 다음과 같이 하겠습니다.^((([\w+-]+)(.[\w+-]+)*)|(\"[^(\|\")]{0,62}\"))@(([a-zA-Z0-9-]+.)+([a-zA-Z0-9]{2,})|[?([1]?\d{1,2}|2[0-4]{1}\d{1}|25[0-5]{1})(.([1]?\d{1,2}|2[0-4]{1}\d{1}|25[0-5]{1})){3}]?)$
제가 아는 한, RFC 사양의 모든 것을 지원하고 있습니다.대부분의 유저가 포함하지 않는 내용도 다수 포함되어 있습니다.
대부분의 경우 이용 가능한 TLD를 모두 지원하지 않는 모든 regex 제안(예:.info
★★★★★★★★★★★★★★★★★」.museum
의 결정' URL을 [a-z]
★★★★★★★★★★★★★★★★★」\w
fail는 다음 경우입니다.
([^.@]+)(\.[^.@]+)*@([^.@]+\.)+([^.@]+)
, ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.WHERE user=test OR user=test@example.com
에러가 발생하기 쉽습니다.에서 자동 하여 "PK"에서 사용하는 이 좋습니다.WHERE
절을 클릭합니다.
RFCxxx 사양에 부합하는 엄격하고 길고 읽을 수 없는 메일 주소의 값은 잘 모르겠습니다.가장 좋은 방법은 액티베이션키가 있는 링크가 포함된 메일을 최종 사용자에게 전송하여 메일 주소를 확인하는 것입니다.그것도 폼으로 알려주세요.필요한 경우 사용자가 암호와 마찬가지로 전자 메일 주소를 두 번 입력합니다.
$email = "email@string.com";
function isEmail($email) {
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
return true
} else {
return false
}
}
if (isEmail($user_email)) {
// email is valid, run the query
mysql_query("UPDATE _$setprofile SET user=$sn, fc=$fc WHERE user='$user' OR user='$user_email");
}
$user_email = "email@gmailcom";
function isEmail($email) {
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
return true;
} else {
return false;
}
}
if (isEmail($user_email)) {
// email is ok!
} else {
// email not ok
}
언급URL : https://stackoverflow.com/questions/1725907/check-if-a-string-is-an-email-address-in-php
'programing' 카테고리의 다른 글
마이그레이션을 사용하여 라라벨의 열 이름을 변경하려면 어떻게 해야 합니까? (0) | 2022.09.25 |
---|---|
vue.js의 로그아웃 버튼으로 main.js의 인스턴스에 액세스합니다. (0) | 2022.09.25 |
PHP에서 컨스트럭터를 오버로드할 수 없는 이유는 무엇입니까? (0) | 2022.09.25 |
Cake용으로 작성된 기존 MySQL 데이터베이스에서 ER 다이어그램 생성PHP (0) | 2022.09.25 |
http 응답을 보낸 후 php 처리를 계속합니다. (0) | 2022.09.25 |