php strpos 질문드립니다.
본문
$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
strpos 함수는 비교대상에서 비교할문자가 있는위치를 반환하는 함수라서
일부분이면 무조건 존재하는것으로 인식되서 참이 될겁니다.
원하시는건 일치할때의 조건으로 보여지는데
차라리 배열로
$arr = array("1234","5678");
형태로 넣고
$str = "234";
if (in_array($str, $arr)) {
//true
}
와 같이 비교하는게 더 낫지 않을까요?
if(strpos($test, $val) !== false) {
->
if (strpos($test, $val) !== false && strlen($val) == 4) {
답변을 작성하시기 전에 로그인 해주세요.