2013-06-07 1 views
0

두 개의 PHP 변수가 문자열이고 한 개는 다중 단어 문자열이고 다른 한 개는 단일 단어 문자열입니다.한 문자열에 다른 작은 문자열이 들어 있는지 확인하십시오.

큰 문자열에 작은 문자열이 포함되어 있으면 true를 반환하는 사용자 지정 함수를 작성하려면 어떻게해야합니까? 여기

내가 코드의 측면에서 지금까지 무엇을 가지고 :

function contains($smaller, $larger){ 
    //if $smaller is in larger{ 
     return true; 
    } 
    else{ 
     return false; 

} 

어떻게이 주석 부분을 할 수 있습니까?

$ small의 정확한 값을 알지 못하기 때문에 정규식을 사용할 수 없습니까?

답변

2

이 버전은 FALSE를 반환 대 0에 대해 부울 및 경비를 반환해야합니다주의

function contains($smaller, $larger){ 
    return strpos($larger, $smaller) !== false; 
} 
+0

이것은 정답이어야합니다. –

2

"더 작은"문자열의 위치를 ​​반환하는 PHP 함수 strstr이 있습니다.

http://www.php.net/manual/en/function.strstr.php

if(strstr($smaller, $larger)) 
{ 
    //Its true 
} 
+0

나는 알고 싶지 않아 위치. '$ larger'에 존재한다면 말입니다. 그래서 if 스위트 안에'return true; '를 넣을 수 있습니까? –

+0

1 이상의 값이 모두 참이므로 위치가없는 경우 0 또는 거짓입니다. 이 작업을 수행하는 데 함수가 필요하지 않습니다 ... 위 코드를 사용하면 올바르게 작동합니다. 그래서 함수로 보내지 말고 그냥 strstr을 사용하여 두 단어를 전달하면 원하는 방식으로 정확하게 작동합니다. –

+0

그러나 귀하의 질문에 대답하기 위해, 그렇습니다 ... 당신이 거짓을 사실로 돌려 주면 작동 할 것입니다. if (strstr ($ smaller, $ larger)) –

2

PHP가 이미 있습니다. Strpos는 문자열을 세운 경우가 위치를 반환 답

http://php.net/manual/en/function.strrpos.php

if (strpos($larger, $smaller) !== false){ 
    // smaller string is in larger 
} else { 
    // does not contains 
} 

입니다. (작은의 위치가 0 번째 위치에있는 경우) 0를 확인하기 위해

+0

나는 그 위치를 알고 싶지 않다. '$ large' 또는'$ large'에있는 것뿐입니다. 가치가 발견되지 않으면 무엇입니까? 더 작은 문자열을 찾지 못하고 false를 반환하면 값이 0 이상인 경우 true를 반환 할 수 있습니까? –

+0

위치가 0 일 때 0, 문자열 내에없는 경우 false입니다. (0 == false) == true이지만 (0 === false) == false – DanFromGermany

관련 문제