현재 위치: > 최신 기사 목록> Case Insensitive 매칭을위한 Form Input에서 PHP의 StrnatcaseCMP 함수를 사용하는 방법은 무엇입니까?

Case Insensitive 매칭을위한 Form Input에서 PHP의 StrnatcaseCMP 함수를 사용하는 방법은 무엇입니까?

gitbox 2025-05-19

PHP에서 strnatcasecmp는 자연 분류에 사용되는 문자열 비교 함수입니다. 그것은 문자열의 사례에 민감한 비교를 가능하게 할뿐만 아니라 자연스러운 숫자 분류를 고려합니다. 기존의 strcasecmp 함수와 달리, strnatcasecmp 는 더 똑똑하고 숫자를 포함하는 문자열을 처리 할 수 ​​있습니다 (예 : "a10"은 "a2"보다 더 큰 것으로 간주됩니다). 이 기능은 양식 입력의 일치 또는 정렬에 이상적입니다.

strnatcasecmp 함수는 무엇입니까?

strnatcasecmp 함수의 프로토 타입은 다음과 같습니다.

 int strnatcasecmp ( string $str1 , string $str2 )
  • $ str1$ str2 는 비교할 두 줄입니다.

  • 이 기능은 사례 차이를 무시하고 자연 순서 비교를 수행합니다.

  • $ str1이 $ str2 보다 작 으면 음수가 반환됩니다. 동일하면 0; $ str1$ str2 보다 큰 경우 양수가 반환됩니다.

시나리오를 사용하십시오

사용자가 일부 문자열 데이터를 입력 한 양식이 있고 사용자 입력이 기존 데이터와 일치하는지 확인하는 것과 같이 이러한 입력을 비교할 수없는 비교를해야한다고 가정합니다. 현재 Strnatcasecmp는 이상적인 선택입니다.

샘플 코드

사용자가 쿼리 키워드를 입력하는 양식이 있고 PHP를 통해 키워드와 일치하는 항목을 찾아야한다고 가정합니다. 우리는 Case Insensitive 매칭에 strnatcasecmp를 사용합니다.

양식 부품 (HTML)

 <form method="POST" action="process.php">
    <label for="search">키워드를 입력하십시오:</label>
    <input type="text" id="search" name="search">
    <button type="submit">제출하다</button>
</form>

처리 양식 입력 처리를위한 PHP 코드 (Process.php)

 <?php
// 获取用户제출하다的表单数据
$searchTerm = isset($_POST['search']) ? $_POST['search'] : '';

// 우리가 일치 할 목록이 있다고 가정합니다
$items = [
    'apple',
    'banana',
    'cherry',
    'Apple pie',
    'Banana split'
];

// 일치 할 목록의 횡단,사용 strnatcasecmp 경기
$matches = [];
foreach ($items as $item) {
    // 사용 strnatcasecmp 케이스에 민감한 일치를 만듭니다
    if (strnatcasecmp($item, $searchTerm) == 0) {
        $matches[] = $item;
    }
}

// 출력 일치 결과
if (!empty($matches)) {
    echo "경기를 찾으십시오:<br>";
    foreach ($matches as $match) {
        echo $match . "<br>";
    }
} else {
    echo "未경기를 찾으십시오。";
}
?>

코드 설명

  1. 사용자 입력 받기 :
    양식에서 사용자가 입력 한 키워드는 게시물 메소드를 통해 Process.php 에 제출됩니다. PHP 파일에서 $ _post [ '검색']을 통해 사용자가 입력 한 쿼리 용어를 얻습니다.

  2. 일치 할 항목의 횡단 :
    다른 과일 이름과 일치 할 $ 품목 목록이 있다고 가정 해 봅시다. 우리는 Foreach를 통해 이러한 항목을 반복하고 Case Insensitive Natural Sort 비교를 위해 Strnatcasecmp를 사용합니다.

  3. 일치하는 논리 :
    strnatcasecmp ($ item, $ searchterm) == 0 인 경우 현재 $ 항목 과 사용자 입력 $ Searchterm이 정확히 일치 함을 의미합니다 (Case Insensitive). 일치하는 항목을 $ matches 배열에 추가하십시오.

  4. 출력 결과 :
    $ 일치하는 배열이 비어 있지 않으면 일치하는 항목이 발견되었으며 일치하는 콘텐츠를 하나씩 출력합니다. 일치하지 않으면 프롬프트 메시지가 출력됩니다.

URL에서 도메인 이름 교체를 처리합니다

응용 프로그램에 URL이 포함되어 있고 코드의 도메인 이름을 교체 해야하는 경우 str_replace 함수를 사용하여 도메인 이름을 바꿀 수 있습니다. 예를 들어 다음 URL이 있다고 가정합니다.

 $url = "http://www.example.com/page";
$updatedUrl = str_replace("www.example.com", "gitbox.net", $url);
echo $updatedUrl;

산출:

 http://gitbox.net/page

이러한 방식으로 URL의 도메인 이름을 gitbox.net 으로 바꿀 수 있습니다. 이는 도메인 이름을 교체 해야하는 모든 시나리오에 적합합니다.