>  기사  >  백엔드 개발  >  PHP를 사용하여 상대 경로를 절대 URL로 변환하는 방법은 무엇입니까?

PHP를 사용하여 상대 경로를 절대 URL로 변환하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-07 11:52:03146검색

How to Convert a Relative Path to an Absolute URL Using PHP?

PHP를 사용하여 상대 경로를 절대 URL로 변환

상대 경로를 절대 URL로 변환하는 것은 웹 기반 리소스 작업에 필수적입니다. 이 작업은 웹 개발에 널리 사용되는 스크립트 언어인 PHP를 사용하여 수행할 수 있습니다.

PHP를 사용하여 상대 경로를 절대 URL로 변환하는 방법:

To 이 변환을 수행하려면 rel2abs() 함수를 활용할 수 있습니다.

function rel2abs($rel, $base)
{
    /* return if already absolute URL */
    if (parse_url($rel, PHP_URL_SCHEME) != '') return $rel;

    /* queries and anchors */
    if ($rel[0]=='#' || $rel[0]=='?') return $base.$rel;

    /* parse base URL and convert to local variables:
       $scheme, $host, $path */
    extract(parse_url($base));

    /* remove non-directory element from path */
    $path = preg_replace('#/[^/]*$#', '', $path);

    /* destroy path if relative url points to root */
    if ($rel[0] == '/') $path = '';

    /* dirty absolute URL */
    $abs = "$host$path/$rel";

    /* replace '//' or '/./' or '/foo/../' with '/' */
    $re = array('#(/\.?/)#', '#/(?!\.\.)[^/]+/\.\./#');
    for($n=1; $n>0; $abs=preg_replace($re, '/', $abs, -1, $n)) {}

    /* absolute URL is ready! */
    return $scheme.'://'.$abs;
}

설명:

  1. 상대 경로가 이미 절대 URL인지 확인하세요( 스키마 포함).
  2. 쿼리 또는 앵커를 기본 URL과 연결합니다.
  3. 기본 URL을 해당 스키마, 호스트 및 경로 구성 요소로 구문 분석합니다.
  4. 제공된 상대 URL을 변환합니다. 경로를 "더러운" 절대 URL로 변경합니다.
  5. "//", "/./" 또는 "/foo/../"와 같은 패턴을 "/"로 반복적으로 바꿔 절대 URL을 정리합니다.
  6. 정리된 절대 URL을 반환합니다.

사용법:

이 기능을 활용하여 상대 경로를 해당 절대 URL로 변환할 수 있습니다. 예를 들어, 다음 스니펫은 상대 경로를 절대 URL로 변환하는 방법을 보여줍니다.

$rel_path = "images/profile.jpg";
$base_url = "https://example.com/";

$abs_url = rel2abs($rel_path, $base_url); // Output: "https://example.com/images/profile.jpg"

위 내용은 PHP를 사용하여 상대 경로를 절대 URL로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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