$str = '반갑습니다. 환영합니다!';
$substring = '환영';

$pos = mb_strpos($str, $substring);

if ($pos !== false) {
    echo "찾은 위치: $pos";
} else {
    echo '찾을 수 없습니다.';
}

// 출력: 찾은 위치: 7

/*
 * 주의하세요!
 * 문자열에서 인덱스는 0부터 시작합니다.
 * 첫 번째 문자열의 인덱스는 0이고, 두 번째 문자열의 인덱스는 1입니다.
*/
$str = '반갑습니다. 환영합니다!';
$substring = '환영';

$pos = strpos($str, $substring);

if ($pos !== false) {
    echo "찾은 위치: $pos";
} else {
    echo '찾을 수 없습니다.';
}

// 출력: 찾은 위치: 17 <= 원하지 않는 결과가 발생합니다.
mb_strpos(
    string $haystack,
    string $needle,
    int $offset = 0,
    ?string $encoding = null
): int|false
$str = 'Hello, World!';
$substring = 'world';

$pos = mb_strpos($str, $substring);

if ($pos === false) {
    echo "대소문자가 일치하지 않아 'world!'를 찾을 수 없습니다.";
} else {
    echo "문자열에 'world!'가 포함되어 있습니다.";
}

// 출력: "대소문자가 일치하지 않아 'world!'를 찾을 수 없습니다."
$newstring = '가나다라 마바사';
$pos = mb_strpos($newstring, '가');

var_dump($pos); // int(0)
$str = 'Hello, World!';
$substring = '';

$pos = mb_strpos($str, $substring); // Warning: mb_strpos(): Empty needle in
$str = 'Hello, World!';
$substring = 'Hello';

$pos = mb_strpos($str, $substring);

var_dump($pos); // int(0)

if ($pos === false) {
    echo "문자열에 'Hello'를 찾을 수 없습니다.";
} else {
    echo "문자열에 'Hello'가 포함되어 있습니다.";
}

// 출력: "문자열에 'Hello'가 포함되어 있습니다."