URL Helper¶
URL 헬퍼는 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_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()의 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() 태그 를 생성합니다. 이때 자바스크립트를 이용하여 순차적으로 생성되는 숫자를 이용합니다.
- auto_link($str, $type = 'both', $popup = FALSE)¶
인수: - $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
이 함수는 스크립트 실행을 종료합니다.