URL 헬퍼

URL 헬퍼 파일에는 URL 작업을 도와주는 함수가 포함되어 있습니다.

헬퍼 로드

이 헬퍼는 다음 코드를 사용하여 로드합니다:

$this->load->helper('url');

사용 가능한 함수

사용 가능한 함수는 다음과 같습니다:

site_url([$uri = ''[, $protocol = NULL]])
매개변수:
  • $uri (string) – URI 문자열

  • $protocol (string) – 프로토콜, 예: ‘http’ 또는 ‘https’

반환:

사이트 URL

반환 형식:

string

설정 파일에 지정된 사이트 URL을 반환합니다. index.php 파일(또는 설정 파일에서 index_page로 설정한 파일)이 URL에 추가되며, 함수에 전달한 URI 세그먼트와 설정 파일에 설정된 url_suffix도 추가됩니다.

URL이 변경되더라도 페이지 이식성이 높아지도록 로컬 URL을 생성할 때는 이 함수를 사용하는 것이 좋습니다.

세그먼트는 문자열 또는 배열로 함수에 선택적으로 전달할 수 있습니다. 문자열 예시:

echo site_url('news/local/123');

위 예시는 다음과 같은 것을 반환합니다: http://example.com/index.php/news/local/123

배열로 세그먼트를 전달하는 예시:

$segments = array('news', 'local', '123');
echo site_url($segments);

이 함수는 CI_Config::site_url()의 별칭입니다. 자세한 내용은 Config 라이브러리 문서를 참조하세요.

base_url($uri = '', $protocol = NULL)
매개변수:
  • $uri (string) – URI 문자열

  • $protocol (string) – 프로토콜, 예: ‘http’ 또는 ‘https’

반환:

기본 URL

반환 형식:

string

설정 파일에 지정된 사이트 기본 URL을 반환합니다. 예시:

echo base_url();

이 함수는 index_pageurl_suffix가 추가되지 않는다는 점을 제외하면 site_url()과 동일한 것을 반환합니다.

site_url()과 마찬가지로 문자열 또는 배열로 세그먼트를 제공할 수 있습니다. 문자열 예시:

echo base_url("blog/post/123");

위 예시는 다음과 같은 것을 반환합니다: http://example.com/blog/post/123

site_url()과 달리 이미지나 스타일시트와 같은 파일에 문자열을 제공할 수 있어 유용합니다. 예시:

echo base_url("images/icons/edit.png");

이것은 다음과 같은 것을 반환합니다: http://example.com/images/icons/edit.png

이 함수는 CI_Config::base_url()의 별칭입니다. 자세한 내용은 Config 라이브러리 문서를 참조하세요.

current_url()
반환:

현재 URL

반환 형식:

string

현재 보고 있는 페이지의 전체 URL(세그먼트 포함)을 반환합니다.

참고

이 함수를 호출하는 것은 다음과 동일합니다: | | site_url(uri_string());

uri_string()
반환:

URI 문자열

반환 형식:

string

이 함수가 포함된 페이지의 URI 세그먼트를 반환합니다. 예를 들어 URL이 다음과 같다면:

http://some-site.com/blog/comments/123

함수는 다음을 반환합니다:

blog/comments/123

이 함수는 CI_Config::uri_string()의 별칭입니다. 자세한 내용은 Config 라이브러리 문서를 참조하세요.

index_page()
반환:

‘index_page’ 값

반환 형식:

mixed

설정 파일에 지정된 사이트의 index_page를 반환합니다. 예시:

echo index_page();
anchor($uri = '', $title = '', $attributes = '')
매개변수:
  • $uri (string) – URI 문자열

  • $title (string) – 앵커 제목

  • $attributes (mixed) – HTML 속성

반환:

HTML 하이퍼링크 (앵커 태그)

반환 형식:

string

로컬 사이트 URL을 기반으로 표준 HTML 앵커 링크를 생성합니다.

첫 번째 매개변수에는 URL에 추가할 세그먼트를 포함할 수 있습니다. 위의 site_url() 함수와 마찬가지로 세그먼트는 문자열 또는 배열일 수 있습니다.

참고

애플리케이션 내부 링크를 생성하는 경우 기본 URL(http://…)을 포함하지 마세요. 설정 파일의 정보로부터 자동으로 추가됩니다. URL에 추가할 URI 세그먼트만 포함하세요.

두 번째 매개변수는 링크에 표시할 텍스트입니다. 비워두면 URL이 사용됩니다.

세 번째 매개변수에는 링크에 추가할 속성 목록을 포함할 수 있습니다. 속성은 단순 문자열 또는 연관 배열일 수 있습니다.

예시:

echo anchor('news/local/123', 'My News', 'title="News title"');
// Prints: <a href="http://example.com/index.php/news/local/123" title="News title">My News</a>

echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));
// Prints: <a href="http://example.com/index.php/news/local/123" title="The best news!">My News</a>

echo anchor('', 'Click here');
// Prints: <a href="http://example.com">Click Here</a>
anchor_popup($uri = '', $title = '', $attributes = FALSE)
매개변수:
  • $uri (string) – URI 문자열

  • $title (string) – 앵커 제목

  • $attributes (mixed) – HTML 속성

반환:

팝업 하이퍼링크

반환 형식:

string

URL을 새 창에서 연다는 점을 제외하면 anchor() 함수와 거의 동일합니다. 세 번째 매개변수에 JavaScript 창 속성을 지정하여 창이 열리는 방식을 제어할 수 있습니다. 세 번째 매개변수가 설정되지 않으면 브라우저 설정으로 새 창을 엽니다.

속성 예시:

$atts = array(
        'width'       => 800,
        'height'      => 600,
        'scrollbars'  => 'yes',
        'status'      => 'yes',
        'resizable'   => 'yes',
        'screenx'     => 0,
        'screeny'     => 0,
        'window_name' => '_blank'
);

echo anchor_popup('news/local/123', 'Click Me!', $atts);

참고

위 속성은 함수 기본값이므로 필요한 것과 다른 것만 설정하면 됩니다. 함수가 모든 기본값을 사용하도록 하려면 세 번째 매개변수에 빈 배열을 전달하세요: | | echo anchor_popup(‘news/local/123’, ‘Click Me!’, array());

참고

window_name은 실제로 속성이 아니라 창 이름 또는 창 대상을 받는 JavaScript window.open() <https://www.w3schools.com/jsref/met_win_open.asp> 메서드의 인수입니다.

참고

위에 나열된 것 이외의 다른 속성은 앵커 태그의 HTML 속성으로 파싱됩니다.

mailto($email, $title = '', $attributes = '')
매개변수:
  • $email (string) – 이메일 주소

  • $title (string) – 앵커 제목

  • $attributes (mixed) – HTML 속성

반환:

“mail to” 하이퍼링크

반환 형식:

string

표준 HTML 이메일 링크를 생성합니다. 사용 예시:

echo mailto('me@my-site.com', 'Click Here to Contact Me');

위의 anchor() 탭과 마찬가지로 세 번째 매개변수를 사용하여 속성을 설정할 수 있습니다:

$attributes = array('title' => 'Mail me');
echo mailto('me@my-site.com', 'Contact Me', $attributes);
safe_mailto($email, $title = '', $attributes = '')
매개변수:
  • $email (string) – 이메일 주소

  • $title (string) – 앵커 제목

  • $attributes (mixed) – HTML 속성

반환:

스팸 방지 “mail to” 하이퍼링크

반환 형식:

string

mailto() 함수와 동일하지만 스팸 봇에 의해 이메일 주소가 수집되는 것을 방지하기 위해 JavaScript로 작성된 서수를 사용하여 mailto 태그의 난독화된 버전을 작성합니다.

매개변수:
  • $str (string) – 입력 문자열

  • $type (string) – 링크 유형 (‘email’, ‘url’ 또는 ‘both’)

  • $popup (bool) – 팝업 링크를 생성할지 여부

반환:

링크가 된 문자열

반환 형식:

string

문자열에 포함된 URL과 이메일 주소를 자동으로 링크로 변환합니다. 예시:

$string = auto_link($string);

두 번째 매개변수는 URL과 이메일을 모두 변환할지 아니면 하나만 변환할지를 결정합니다. 매개변수가 지정되지 않으면 기본 동작은 둘 다입니다. 이메일 링크는 위에 표시된 safe_mailto()로 인코딩됩니다.

URL만 변환:

$string = auto_link($string, 'url');

이메일 주소만 변환:

$string = auto_link($string, 'email');

세 번째 매개변수는 링크를 새 창에서 표시할지 여부를 결정합니다. 값은 TRUE 또는 FALSE (불리언)일 수 있습니다:

$string = auto_link($string, 'both', TRUE);
url_title($str, $separator = '-', $lowercase = FALSE)
매개변수:
  • $str (string) – 입력 문자열

  • $separator (string) – 단어 구분자

  • $lowercase (bool) – 출력 문자열을 소문자로 변환할지 여부

반환:

URL 형식의 문자열

반환 형식:

string

문자열을 입력으로 받아 사람이 읽기 쉬운 URL 문자열을 생성합니다. 예를 들어 URL에 항목 제목을 사용하고 싶은 블로그가 있는 경우 유용합니다. 예시:

$title = "What's wrong with CSS?";
$url_title = url_title($title);
// Produces: Whats-wrong-with-CSS

두 번째 매개변수는 단어 구분자를 결정합니다. 기본적으로 대시가 사용됩니다. 권장 옵션: - (대시) 또는 _ (밑줄)

예시:

$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore');
// Produces: Whats_wrong_with_CSS

세 번째 매개변수는 소문자 문자를 강제할지 여부를 결정합니다. 기본적으로 강제하지 않습니다. 옵션은 불리언 TRUE/FALSE입니다.

예시:

$title = "What's wrong with CSS?";
$url_title = url_title($title, 'underscore', TRUE);
// Produces: whats_wrong_with_css
prep_url($str = '')
매개변수:
  • $str (string) – URL 문자열

반환:

프로토콜 접두사가 있는 URL 문자열

반환 형식:

string

URL에 프로토콜 접두사가 없는 경우 http://를 추가합니다.

URL 문자열을 다음과 같이 함수에 전달합니다:

$url = prep_url('example.com');
redirect($uri = '', $method = 'auto', $code = NULL)
매개변수:
  • $uri (string) – URI 문자열

  • $method (string) – 리다이렉트 방법 (‘auto’, ‘location’ 또는 ‘refresh’)

  • $code (string) – HTTP 응답 코드 (보통 302 또는 303)

반환 형식:

void

지정된 URI로 “헤더 리다이렉트”를 수행합니다. 전체 사이트 URL을 지정하면 해당 링크가 생성되지만, 로컬 링크의 경우 이동할 컨트롤러에 대한 URI 세그먼트만 제공하면 설정 파일 값을 기반으로 URL이 생성됩니다.

선택적인 두 번째 매개변수를 사용하면 특정 리다이렉션 방법을 강제할 수 있습니다. 사용 가능한 방법은 auto, location, refresh이며, location이 더 빠르지만 IIS 서버에서는 덜 신뢰할 수 있습니다. 기본값은 auto이며 서버 환경에 따라 방법을 지능적으로 선택합니다.

선택적인 세 번째 매개변수를 사용하면 특정 HTTP 응답 코드를 보낼 수 있습니다. 예를 들어 검색 엔진을 위한 301 리다이렉트를 생성하는 데 사용할 수 있습니다. 기본 응답 코드는 302입니다. 세 번째 매개변수는 location 리다이렉트에서만 사용 가능하며 refresh에서는 사용할 수 없습니다. 예시:

if ($logged_in == FALSE)
{
        redirect('/login/form/');
}

// with 301 redirect
redirect('/article/13', 'location', 301);

참고

이 함수가 작동하려면 브라우저로 출력되기 전에 사용해야 합니다. 서버 헤더를 활용하기 때문입니다.

참고

헤더에 대한 세밀한 제어가 필요한 경우 Output 라이브러리set_header() 메서드를 사용해야 합니다.

참고

IIS 사용자: Server HTTP 헤더를 숨기면 auto 방법이 IIS를 감지하지 못하므로 명시적으로 refresh 방법을 사용하는 것이 좋습니다.

참고

location 방법을 사용하는 경우 페이지가 현재 POST를 통해 접근되고 HTTP/1.1이 사용될 때 HTTP 상태 코드 303이 자동으로 선택됩니다.

중요

이 함수는 스크립트 실행을 종료합니다.