반갑습니다. 새해 복많이 받으세요.
첫번째 if 문에 대한 설명을 해 드리도록 하겠습니다.
eregi 라는 함수는 특정 regular expression 에 합당한 문자열을 대소문자 구별없이 찾아서, 있으면 true 를 없으면 false 를 돌려 주는 함수입니다.
그러므로 eregi("regular expression",$string); 는 $string 속에 "regular expression" 에 일치하는 문자열이 있는가 없는가 하는 것을 찾는 것입니다.
(!eregi("^[a-zA-Z0-9-]+(\[a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\[a-zA-Z0-9-]+)+$", $mail)) 이라는 것은 $mail 변수 속에 정규식 "^[a-zA-Z0-9-]+(\[a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\[a-zA-Z0-9-]+)+$" 을 만족하는 문자열이 있는가 없는가 하는 것입니다. 후자에 나타난 정규식은 물론 email address 를 의미합니다.
보다 자세한 정규식에 대한 것은 unix를 다루는데 있어서 아주 중요한 부분 중의 하나이므로 따로 책을 사서 읽어 보시고 마스터하시기 바랍니다.
> 안녕하세요..
> 새해 복 많이 받으세요.. 올 한해도 항상 건강하시고,,
> 하시는 일들이 잘 되시길... 바라겠습니다.
>
> 매번 이렇게 신세를 지게 되는 군요..
> 다름이 아니라.. 게시판에서 메일과 url이 형식에 맞는지 체크을 하고 싶
> 은데.. 이렇게 하면 안되나요..
>
> //email_check 함수 정의
> function check_email($mail){
> if(!eregi("^[a-zA-Z0-9-]+(\[a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\[a-zA-Z0-
> 9-]+)+$",$mail))
> {
> errormsg('$mail은 정상적인 Email 주소가 아닌 것 같습니다.',1);
> }
> for($i = 1; $i<= strlen($mail); $i++){
> if((Ord(subsrt("$mail", $i-1, $i)) & 0x80)){
> errormsg('$mail 주소 안에 한글이 포함되어 있습니다.',1);
> }
> return $mail;
> }
>
> // url_check 함수 정의
> function check_home($home){
> if(!eregi("[a-zA-Z0-9\] + \[a-zA-Z0-9\]+.*",$home)){
> errormsg('http://$home 은 정상적인 http 주소가 아닌 것 같습니다.',1)
> ;
> }
> for($i = 1; $i<= strlen($home); $i++){
> if((Ord(subsrt("$home", $i-1, $i)) & 0x80)){
> errormsg('$home 주소 안에 한글이 포함되어 있습니다.',1);
> }
> }
> $home = eregi_replace("^http.*://","",$home);
> $home = eregi_replace("^","http://",$home);
> return $home;
> }
>
> 이것은 어느 게시판에 있는 소스를 인용한 것입니다.
> 그런데.. 체크가 안되네요.. 제가 소스를 대략 이해는 하는데.. 처음 if문
> 이 이해가 안됩니다. 이해를 하려고 여러 책을 보았지만, 이 부분에 대한
> 설명이 없습니다.
> 고수님.. 도와 주세요.. 부탁드립니다.
> 그럼.. 답장을 기다리겠습니다...
>
|