테스트 사이트 - 개발 중인 베타 버전입니다

php strpos 질문드립니다. 채택완료

brocolly 3년 전 조회 1,963

$test = '1234,5678';

$val = '1234';

 

test에 문자열로 4자리 값이 들어가있고,

val의 값이 test에 있다면 'ok'를 띄워주고 있습니다.

 

if(strpos($test, $val) !== false) {     echo "ok"; }

문제가 1 또는 12, 2, 23 등의 숫자를 입력해도 모두 ok 가 나오고 있는데

이걸 4자리로 끊어서 처리가 가능할까요.

 

예를 들면 1234, 5678은 ok 이지만

234, 567, 3456 등으로 입력하면 1234,5678 과는 다르기 때문에 'no' 를 띄우는게 

가능한지 궁금합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
플래토
3년 전

strpos 함수는 비교대상에서 비교할문자가 있는위치를 반환하는 함수라서

일부분이면 무조건 존재하는것으로 인식되서 참이 될겁니다.

 

원하시는건 일치할때의 조건으로 보여지는데

차라리 배열로 

$arr = array("1234","5678");

형태로 넣고

$str = "234";

if (in_array($str, $arr)) {

   //true

}

와 같이 비교하는게 더 낫지 않을까요?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

3년 전

if(strpos($test, $val) !== false) {

->

if (strpos($test, $val) !== false && strlen($val) == 4) {

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인