URL Helper

URL 헬퍼는 URL조작에 필요한 함수들을 제공합니다.

헬퍼 로딩 Loading this Helper

헬퍼는 아래와 같이 로드합니다:

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

아래의 함수들이 사용 가능합니다:

사용 가능한 함수들 Available Functions

site_url([$uri = ''[, $protocol = NULL]])
인수:
  • $uri (string) – URI string
  • $protocol (string) – Protocol, e.g. ‘http’ or ‘https’
반환값:

Site URL

반환형:

문자열

설정파일에 정의된 사이트의 URL을 리턴합니다. URL 에는 index.php(혹은 index_page로 지정한 파일) 파일 및 함수로 전달된 URL 새그먼트들이 포함됩니다. 그리고 설정파일에 있는 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()의 Alias 입니다. 더 많은 정보를 위해, 환경설정라이브러리(Config Library) 문서를 참조해주세요.

base_url($uri = '', $protocol = NULL)
인수:
  • $uri (string) – URI string
  • $protocol (string) – Protocol, e.g. ‘http’ or ‘https’
반환값:

Base URL

반환형:

문자열

설정파일에 정의된 기반(base) 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()의 Alias 입니다. 더 많은 정보를 위해, 환경설정라이브러리(Config Library) 문서를 참조해주세요.

current_url()
반환값:The current URL
반환형:string

현재 보여지고 있는 페이지의 전체URL (새그먼트 포함)을 리턴합니다.

Note

이 함수를 호출하는 것은 다음을 하는 것과 같습니다: | | site_url(uri_string());

uri_string()
반환값:An URI string
반환형:string

함수를 호출하고 있는 페이지의 URI 새그먼트를 리턴합니다. 예를 들어, URL이 아래와 같다면:

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

함수는 아래와 같은 결과를 리턴합니다:

blog/comments/123

이 함수는 CI_Config::uri_string()의 Alias 입니다. 더 많은 정보를 위해,환경설정라이브러리(Config Library) 문서를 참조해주십시오.

index_page()
반환값:‘index_page’ value
반환형:mixed

설정파일에 정의 된 인덱스페이지를 리턴합니다. 예제:

echo index_page();
anchor($uri = '', $title = '', $attributes = '')
인수:
  • $uri (string) – URI string
  • $title (string) – Anchor title
  • $attributes (mixed) – HTML attributes
반환값:

HTML hyperlink (anchor tag)

반환형:

문자열

표준 HTML 앵커 링크(anchor link)를 사이트 URL 에 맞도록 생성해 줍니다.

첫 번째 파라미터는 URL 에 덧붙이고 싶은 새그먼트들입니다. 위의 site_url() 함수와 같이 새그먼트는 문자열이나 배열로 전달할 수 있습니다.

Note

프로그램 안에서 사용하는 URL 을 만드실 경우 기반URL (http://...) 을 포함하지 마세요. 자동으로 붙습니다. 필요한 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 string
  • $title (string) – Anchor title
  • $attributes (mixed) – HTML attributes
반환값:

Pop-up hyperlink

반환형:

문자열

anchor() 함수와 같으나 URL을 팝업으로 띄웁니다. 세 번째 파라미터로 윈도우 형태를 설정하실 수 있습니다. 세 번째 파라미터를 설정하지 않으시면 여러분의 브라우저 설정에 따라 창이 열립니다.

속성을 포함한 예제:

$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);

Note

위 속성들은 함수의 기본값이므로, 위 설정과 다른 부분만 직접 설정하시면 됩니다. 위 기본값을 그대로 사용하려면, 세 번째 파라미터로 빈 배열을 넘겨주시면 됩니다. | | echo anchor_popup(‘news/local/123’, ‘Click Me!’, array());

Note

window_name 은 진짜 속성은 아니지만, 자바스크립트 window.open() <http://www.w3schools.com/jsref/met_win_open.asp> 의 요소입니다. 윈도우이름이나, 타켓을 받습니다.

Note

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

mailto($email, $title = '', $attributes = '')
인수:
  • $email (string) – E-mail address
  • $title (string) – Anchor title
  • $attributes (mixed) – HTML attributes
반환값:

A “mail to” hyperlink

반환형:

문자열

표준email 링크를 생성합니다. 사용 예제:

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) – E-mail address
  • $title (string) – Anchor title
  • $attributes (mixed) – HTML attributes
반환값:

A spam-safe “mail to” hyperlink

반환형:

문자열

위 함수와 같으나, 스팸로봇에게 메일 주소가 수집되는 것을 막기 위해 헷갈리도록 mailto() 태그 를 생성합니다. 이때 자바스크립트를 이용하여 순차적으로 생성되는 숫자를 이용합니다.

인수:
  • $str (string) – 입력 문자열
  • $type (string) – Link type (‘email’, ‘url’ or ‘both’)
  • $popup (bool) – Whether to create popup links
반환값:

Linkified string

반환형:

문자열

문자열에 포함되어있는 URL 및email 주소를 링크로 변환시켜 줍니다. 예제:

$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) – Word separator
  • $lowercase (string) – Whether to transform the output string to lower-case
반환값:

URL-formatted string

반환형:

문자열

문자열을 입력받아 사람이 읽기 쉬운 URL 문자열을 생성해줍니다. 만약 블로그를 만드는데 글제목을 url 로 사용하고자 할 경우 유용합니다. 예제:

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

두 번째 파라미터는 단어 구분자를 지정할 때 사용합니다. 기본값은 대쉬(-) 입니다. 옵션은: - (dash) 또는 _ (underscore) :

예제:

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

Note

두 번째 파라미터에 ‘dash’ 와 ‘underscore’ 를 사용하는 것은 DEPRECATED 되었습니다.

세 번째 파라미터는 강제로 소문자로 사용할 것인지를 결정합니다. 옵션은 boolean 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 string
반환값:

Protocol-prefixed URL string

반환형:

문자열

이 함수는 URL 에서 http:// 이 빠진경우에 추가해주는 기능을 합니다.

URL 문자열을 다음과 같이 넘겨주세요:

$url = prep_url('example.com');
redirect($uri = '', $method = 'auto', $code = NULL)
인수:
  • $uri (string) – URI string
  • $method (string) – Redirect method (‘auto’, ‘location’ or ‘refresh’)
  • $code (string) – HTTP Response code (usually 302 or 303)
반환형:

void

“header redirect” 를 수행합니다. 전체 url을 지정해도 되지만, 사이트 내부에서 이동할 경우, 컨트롤러의 URI 새그먼트만 지정해주면, 함수가 Url을 알아서 생성합니다.

옵션인 두 번째 파라미터는 auto, location, refresh 메소드 중 하나를 선택할 수 있도록 해줍니다. Location 은 더 빠르게 동작하나, 윈도우 서버에서는 문제가 발생할 수 있습니다. 기본값은 서버 환경에 따라 지능적으로 선택하려고 하는 auto 입니다.

옵션인 세 번째 파라미터로 특정 HTTP 응답(Response)코드를 지정할 수 있습니다 - 검색엔진을 위해서 301 리디렉트를 생성할 경우 사용하실 수 있습니다. 기본응답코드는 302 입니다. 세 번째 파라미터는 location 리디렉트를 사용할 경우에만 사용 가능합니다. 예:

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

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

Note

이 함수는 서버헤더(headers)를 이용하기 때문에, 이 함수를 사용하기 전에 어떠한 출력도 브라우저로 전송되어서는 안됩니다.

Note

헤더의 상세한 설정을 위해서는, 출력라이브러리(Output Library)set_header() 함수를 사용하시면 됩니다.

Note

IIS 사용자를 위해: Server HTTP header 를 숨기시면, auto 기능이 IIS 를 발견하지 못할 것입니다, 그런 경우에 refresh 기능을 사용하시길 권장합니다.

Note

location 기능이 사용중일 때, POST and HTTP/1.1 로 억세스 될 때, 303 응답코드가 자동적으로 선택될 것입니다.

Important

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