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_page나 url_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 태그의 난독화된 버전을 작성합니다.
- auto_link($str, $type = 'both', $popup = FALSE)¶
- 매개변수:
$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이 자동으로 선택됩니다.
중요
이 함수는 스크립트 실행을 종료합니다.