>백엔드 개발 >PHP 튜토리얼 >사용자 입력에서 URL을 감지하고 이를 PHP의 미리 정의된 배열과 비교하는 방법은 무엇입니까?

사용자 입력에서 URL을 감지하고 이를 PHP의 미리 정의된 배열과 비교하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-25 05:25:02640검색

How to Detect URLs in User Input and Compare Them Against a Predefined Array in PHP?

사용자 입력에서 URL 감지

PHP에서 사용자가 입력한 문자열에 사전 정의된 배열의 URL이 포함되어 있는지 확인하는 방법은 다음과 같습니다.

한 가지 접근 방식은 PHP의 in_array() 함수를 활용하는 것입니다. 그러나 제공된 코드에서는 문자열 요소와 배열 요소 간의 불일치로 인해 비교가 실패합니다. 문자열에는 더 큰 문장의 일부로 URL이 포함되어 있지만 배열 요소는 기본 URL일 뿐입니다.

대안 방법으로는 URL 배열을 반복하고 PHP의 strpos를 사용하여 각 URL이 문자열 내에 있는지 확인하는 것입니다. () 기능. 문자열 내에서 URL이 발견되면 함수는 일치를 나타내는 FALSE가 아닌 값을 반환합니다.

수정된 코드는 다음과 같습니다.

<code class="php">$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    if (strpos($string, $url) !== FALSE) {
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;</code>

또는 PHP의 strstr() 함수는 다음을 수행할 수 있습니다. 대소문자를 구분하지 않는 비교에 사용됩니다. 그러나 일반적으로 더 나은 성능을 위해 strpos()가 선호됩니다.

대소문자를 구분하지 않고 비교하려면 스크립트를 다음과 같이 수정할 수 있습니다.

<code class="php">if ( stripos($string, $url) !== FALSE ) {
    // ...
}</code>

위 내용은 사용자 입력에서 URL을 감지하고 이를 PHP의 미리 정의된 배열과 비교하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.