유용한 함수 strpos
strpos — Find position of first occurrence of a string
http://kr.php.net/manual/en/function.strpos.php
원래 문자열에서 주어진 문자열이 처음으로 발견되는 곳의 포지션(위치)를 반환 합니다.
포지션은 0 부터 시작합니다.
만약, 주어진 문자열을 찾을수 없다면 false 를 반환하므로 유의 해야 합니다.
아래와 같이 사용할 경우
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
if (empty($pos)) 나 if (!$pos) 나 if ($pos == false) 로써 구분하는 것은 잘못된 것입니다.
앞에서도 설명했듯이 포지션은 0 부터 시작하기 때문입니다.
따라서
if ($pos === false) 와 같이 사용하여야 합니다.
쓰이는 용도는 다양하게 쓸수 있겠지만
가장 많이 쓰는 케이스 중에 하나가
email 주소 에서 @이가 포함되었는지 여부를 확인하거나
@를 기준으로 이메일 아이디와 이메일 서버를 뽑을때 입니다.
$email = 'abc@gmail.com';
$find_a = '@';
$first_posistion = strpos($email, $find_a);
if ($first_posistion === false){//@를 찾을수 없음
echo $email . ' 에서 @를 찾을수 없습니다.';
}
else {//@를 찾음
$email_id = substr($email, 0, $first_posistion);
$email_server = substr($email, $first_posistion + 1);
echo '이메일아이디 : ' . $email_id;
echo '<br />';
echo '이메일서버 : ' . $email_server;
}
물론 다른 방법 으로도 이메일아이디와 이메일 서버를 가져오는 방법은 많습니다.
list($email_id, $email_server) = explode('@', $email);
용도에 따라 쓰는 방법이 다르겟지만
단순하게 특정 문자열의 포함 여부나 그 문자열이 처음으로 나타나는 포지션을 알고자 할때 아주 유용한 함수 입니다.
http://kr.php.net/manual/en/function.strpos.php
원래 문자열에서 주어진 문자열이 처음으로 발견되는 곳의 포지션(위치)를 반환 합니다.
포지션은 0 부터 시작합니다.
만약, 주어진 문자열을 찾을수 없다면 false 를 반환하므로 유의 해야 합니다.
아래와 같이 사용할 경우
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
if (empty($pos)) 나 if (!$pos) 나 if ($pos == false) 로써 구분하는 것은 잘못된 것입니다.
앞에서도 설명했듯이 포지션은 0 부터 시작하기 때문입니다.
따라서
if ($pos === false) 와 같이 사용하여야 합니다.
쓰이는 용도는 다양하게 쓸수 있겠지만
가장 많이 쓰는 케이스 중에 하나가
email 주소 에서 @이가 포함되었는지 여부를 확인하거나
@를 기준으로 이메일 아이디와 이메일 서버를 뽑을때 입니다.
$email = 'abc@gmail.com';
$find_a = '@';
$first_posistion = strpos($email, $find_a);
if ($first_posistion === false){//@를 찾을수 없음
echo $email . ' 에서 @를 찾을수 없습니다.';
}
else {//@를 찾음
$email_id = substr($email, 0, $first_posistion);
$email_server = substr($email, $first_posistion + 1);
echo '이메일아이디 : ' . $email_id;
echo '<br />';
echo '이메일서버 : ' . $email_server;
}
물론 다른 방법 으로도 이메일아이디와 이메일 서버를 가져오는 방법은 많습니다.
list($email_id, $email_server) = explode('@', $email);
용도에 따라 쓰는 방법이 다르겟지만
단순하게 특정 문자열의 포함 여부나 그 문자열이 처음으로 나타나는 포지션을 알고자 할때 아주 유용한 함수 입니다.
|
댓글을 작성하시려면 로그인이 필요합니다.
프로그램
태그 필터 (최대 3개)
전체
개발자
소스
기타
mysql
팁자료실
javascript
php
linux
flash
정규표현식
jquery
node.js
mobile
웹서버
os
프로그램
강좌
썸네일
이미지관련
도로명주소
그누보드5
기획자
견적서
계약서
기획서
마케팅
제안서
seo
통계
서식
통계자료
퍼블리셔
html
css
반응형
웹접근성
퍼블리싱
표준화
반응형웹
홈페이지기초
부트스트랩
angularjs
포럼
스크린리더
센스리더
개발자톡
개발자팁
퍼블리셔톡
퍼블리셔팁
기획자톡
기획자팁
프로그램강좌
퍼블리싱강좌
댓글 12개
관리자님은 한 오점씩 줄수도 잇잔아요 ㅠㅠ
추천이 없네요.
감사합니다.
전부 되돌린적이 있었는데
!$pos 로 써서 그랬었지요 ===false 를써야 된다는건 나중에 알고..
다시 손을 못대고 있어요 훨씬 더 빠르다던데..
오류 찾느라 애를 먹은적이 있었습니다. 유창화님 말씀대로 if ($pos === false) 와 같이 사용했어야 했더라구요. 경력 1년정도 되었을때 strpos 사용했다가 아주 애를 먹었었죠.
지금도 strpos 는 늘 기억하고 있습니다.