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

변수에 해당 문자열만 있을 때. 채택완료

ComCool 7년 전 조회 1,997

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

 

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

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

답변 5개

채택된 답변
+20 포인트
7년 전

</p>

<p><?php

function str_consist_of_same_char($haystack, $needle) {

    $a = str_replace($needle, '', $haystack);

    $b = strlen($a);</p>

<p> </p>

<p>    return $b === 0;

}</p>

<p>$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, 'ㄱ'));</p>

<p>?></p>

<p>

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

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

7년 전

전부 한글이면(다른 특수문자, 영문, 공백이 없으면) 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 'ㄱ아님';
    }
}

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

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

크리티컬팀

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

 

$a = "ㄱ";

$b = "ㄱㄱㄱ";

 

if ( $a == "ㄱ"){

  결과 : true(참)

}else{

  결과 : false(거짓)

}

 

입니다...

 

반대로

if ( $b == "ㄱ"){

  결과 : false(거짓)

}else{

  결과 : true(참)

}

 

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

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

답변에 대한 댓글 1개

C
ComCool
7년 전
이렇게 하면 ㄱ이 1개 이상이 되버리면 거짓으로 나와버려서요

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

M
7년 전

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

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

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

답변에 대한 댓글 1개

C
ComCool
7년 전
다른 게 붙어도 돼버리네요

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

d
7년 전

$aaa='1111ㄱㄱㄱ000';

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

//없음

}else{

//있음

}

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

답변에 대한 댓글 1개

C
ComCool
7년 전
문자열에 ㄱ만 있을 경우를 찾고싶습니다.
다른 문자가 있으면 안돼는...

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

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

로그인