ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • parse_url() 함수
    tmp 2024. 10. 23. 20:21

    parse_url() 함수는 PHP에서 URL을 분석하여 URL의 구성 요소들을 분리해주는 함수입니다. 이 함수는 URL을 문자열로 입력받아 URL의 각 부분을 반환하는데, 반환된 값은 연관 배열(associative array) 형태입니다.

    함수 정의

    parse_url(string $url, int $component = -1): array|string|int|null|false

    매개변수

    1. $url (필수): 분석할 URL을 나타내는 문자열입니다.
    2. $component (선택): 특정 URL의 구성 요소를 추출하고 싶을 때 사용하는 옵션입니다. 예를 들어, PHP_URL_SCHEME을 사용하면 스킴(scheme, 프로토콜)만 반환합니다.

    반환 값

    • 연관 배열 (associative array): URL의 구성 요소들이 키와 값의 쌍으로 포함된 배열로 반환됩니다. 예를 들어, URL의 프로토콜, 호스트, 경로, 쿼리 문자열 등을 분리해줍니다.
    • 단일 값: $component 옵션을 사용하면, 그에 해당하는 특정 요소만 반환할 수 있습니다.
    • false: URL 구문에 오류가 있을 경우 false를 반환합니다.

    반환 배열의 키 (URL의 구성 요소들)

    parse_url() 함수가 반환하는 배열의 키는 아래와 같습니다:

    • scheme (프로토콜, 예: "http", "https")
    • host (호스트명, 예: "www.example.com")
    • port (포트 번호, 예: 80)
    • user (사용자명)
    • pass (비밀번호)
    • path (경로, 예: "/path/to/page")
    • query (쿼리 문자열, 예: "id=1&name=abc")
    • fragment (URL의 앵커 또는 해시, 예: "#section")

    예시 1: URL 전체 분석

    $parsedUrl = parse_url($url);
    print_r($parsedUrl);
     

    결과

    Array (
        [scheme] => https
        [host] => www.example.com
         [port] => 8080 [user] => user
         [pass] => pass
         [path] => /path
         [query] => query=123
         [fragment] => fragment
    )

    예시 2: 특정 구성 요소만 추출 (스킴만 추출)

     
    $scheme = parse_url($url, PHP_URL_SCHEME);
    echo $scheme; // https

    예시 3: 잘못된 URL 처리

    php
    코드 복사
    $invalidUrl = "http://:8080";
    $result = parse_url($invalidUrl);
    var_dump($result); // bool(false)

    $component 상수 목록

    • PHP_URL_SCHEME: 스킴(프로토콜)만 반환
    • PHP_URL_HOST: 호스트명만 반환
    • PHP_URL_PORT: 포트 번호만 반환
    • PHP_URL_USER: 사용자명만 반환
    • PHP_URL_PASS: 비밀번호만 반환
    • PHP_URL_PATH: 경로만 반환
    • PHP_URL_QUERY: 쿼리 문자열만 반환
    • PHP_URL_FRAGMENT: 해시/프래그먼트만 반환

    사용 예: HTTP 요청 처리에 사용

    parse_url()은 주로 HTTP 요청에서 URL을 처리할 때 사용됩니다. 예를 들어, 다음과 같은 방식으로 클라이언트의 요청 URI에서 경로 정보를 추출할 수 있습니다:

     
    $requestUri = $_SERVER['REQUEST_URI'];
    $parsedUri = parse_url($requestUri, PHP_URL_PATH);
    echo $parsedUri; // 요청된 경로만 출력
     

    이렇게 parse_url() 함수를 활용하면 복잡한 URL을 쉽게 분석하고 필요한 부분만 추출할 수 있어 유용합니다.

    댓글

Designed by Tistory.