programing

PHP를 사용하여 단어가 다른 문자열에 포함되어 있는지 확인하려면 어떻게 해야 합니까?

lastcode 2023. 8. 20. 11:14
반응형

PHP를 사용하여 단어가 다른 문자열에 포함되어 있는지 확인하려면 어떻게 해야 합니까?

유사 코드

text = "I go to school";
word = "to"
if ( word.exist(text) ) {
    return true ;
else {
    return false ;
}

텍스트에 단어가 있으면 true를 반환하는 PHP 함수를 찾고 있습니다.

필요에 따라 몇 가지 옵션이 있습니다.이 간단한 예를 들면,strpos()이 가장 단순하고 직접적인 기능일 것입니다.만약 당신이 결과를 가지고 무언가를 해야 한다면, 당신은 아마도 선호할 것입니다.strstr()또는preg_match()만약 당신이 바늘로 끈 대신 복잡한 패턴을 사용해야 한다면, 당신은preg_match().

$needle = "to";
$haystack = "I go to school";

strpos() stripos() 방법("strpos"는 대소문자를 구분하지 않음):

if (strpos($haystack, $needle) !== false) echo "Found!";

strstr() stristr() 방법(stristr은 대소문자 구분 안 함):

if (strstr($haystack, $needle)) echo "Found!";

preg_match 메서드(정규 표현식, 훨씬 유연하지만 실행 속도가 느림):

if (preg_match("/to/", $haystack)) echo "Found!";

완전한 기능을 요청했으므로 다음과 같이 조합할 수 있습니다(니들 및 건초 스택의 기본값).

function match_my_string($needle = 'to', $haystack = 'I go to school') {
  if (strpos($haystack, $needle) !== false) return true;
  else return false;
}

이제 PHP 8.0.0에는 다음과 같이 작동하는 str_contains 함수가 포함되어 있습니다.

if (str_contains($haystack, $needle)) {
    echo "Found";
}
function hasWord($word, $txt) {
    $patt = "/(?:^|[^a-zA-Z])" . preg_quote($word, '/') . "(?:$|[^a-zA-Z])/i";
    return preg_match($patt, $txt);
}

$word가 "to"인 경우 다음과 일치합니다.

  • "리슨 투 미"
  • "달에게"
  • "최신"

하지만 그렇지 않습니다.

  • "함께"
  • "우주로"

사용:

return (strpos($text,$word) !== false); //case-sensitive

또는

return (stripos($text,$word) !== false); //case-insensitive

스트로스

<?php
$text = "I go to school";
$word = "to"
$pos = strpos($text, $word);

if ($pos === false) {
    return false;
} else {
    return true;
}
?>
$text="I go to school";
return (strpos($text, 'to')!== false);

strpos의 올바른 사용법을 찾는 데 필요한 설명서 페이지

(이미 제공된 strpos 예제 외에) 다른 방법은 'strstr' 함수를 사용하는 것입니다.

if (strstr($haystack, $needle)) {
   return true;
} else {
   return false;
}

이러한 문자열 함수를 사용할 수 있습니다.

strstr — 문자열의 첫 번째 항목을 찾습니다.

stistr — 대소문자를 구분하지 않는 strstr()

strchr — 문자열에서 마지막으로 나타나는 문자를 찾습니다.

strpos — 문자열에서 하위 문자열이 처음 나타나는 위치를 찾습니다.

strpbrk - 문자열 집합을 검색합니다.

그래도 도움이 되지 않으면 다음을 사용해야 합니다.preg정규 표현

preg_match - 정규식 일치 수행

PHP 8 새 함수 str_contains

if (str_contains('Foo Bar Baz', 'Foo')) {
  echo 'Found';
}

OR

사용하다strposphp에서 기능합니다.

$text = "I go to school";
$word = "to"
if (strpos($text,$word) !== false ) {
    echo 'true';
}

@미스터 클레이

할 수 없어요.

"/(?:^|\w+)" . preg_quote($word, '/') . "(?:$|\w+)/i"

시작 또는 공백, 끝 또는 공백을 확인합니다.

언급URL : https://stackoverflow.com/questions/1019169/how-can-i-check-if-a-word-is-contained-in-another-string-using-php

반응형