변수에 해당 문자열만 있을 때.

변수에 해당 문자열만 있을 때.

QA

변수에 해당 문자열만 있을 때.

본문

아무리 검색을 해도 PHP 문서중에 해당 문자열만 있을 경우를 찾아주는 함수가 없는 듯 합니다.

 

제가 원하는 건 변수에 ㄱ이라는 문자만 있을 경우, 즉 ㄱㄱ 이든 ㄱㄱㄱㄱㄱ이든 변수에 ㄱ만 있을 경우를 찾고싶습니다. 문자열 관련 함수를 찾아보니 해당 문자열을 자르거나, 비교하는 것뿐이라 도대체 어떻게 해야할 지 모르겠네요.

이 질문에 댓글 쓰기 :

답변 5


<?php
function str_consist_of_same_char($haystack, $needle) {
    $a = str_replace($needle, '', $haystack);
    $b = strlen($a);
 
    return $b === 0;
}
$a = 'ㄱㄱㄱㄱㄱㄱㄱㄱ';
$b = 'ㄱㄱㄱㄱㄱㄱ ㄱ';
$c = 'ㄱㄱㄴㄱㄱㄱㄱㄱ';
var_dump(str_consist_of_same_char($a, 'ㄱ'));
var_dump(str_consist_of_same_char($b, 'ㄱ'));
var_dump(str_consist_of_same_char($c, 'ㄱ'));
?>

$aaa='1111ㄱㄱㄱ000';

if (strpos($aaa,'ㄱ') === false){

//없음

}else{

//있음

}

strpos로 하시면 되는데 기본적으로  ㄱ 만 있을 경우는 안됩니다.

그럴경우는 strpos("@".$aaa,"ㄱ") 이런식으로 문자열 앞자리에 아무거나 붙여 주시면 됩니다.

이럴땐 그냥 if문 사용하시면 됩니다...

 

$a = "ㄱ";

$b = "ㄱㄱㄱ";

 

if ( $a == "ㄱ"){

  결과 : true(참)

}else{

  결과 : false(거짓)

}

 

입니다...

 

반대로

if ( $b == "ㄱ"){

  결과 : false(거짓)

}else{

  결과 : true(참)

}

 

"ㄱ"이기만 원한다면 이런식으로 처리하시는게^^;;

전부 한글이면(다른 특수문자, 영문, 공백이 없으면) str_split 사용해서 배열로 만든 다음 비교해보세요~

$a = '가나다';

$b = str_split($a, 3);

 

아래처럼 해도 됩니다.

 

$c = mb_strlen($a, 'utf-8');
for($i=0; $i<$c; $i++){
    $asd = iconv_substr($a, $i, 1, 'utf-8');
    if($asd !== 'ㄱ') {
        echo 'ㄱ아님';
    }
}

답변을 작성하시기 전에 로그인 해주세요.
전체 123,657 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT