CodeIgniter User Guide Version 1.7.2


URL Helper

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

헬퍼로딩 Loading this Helper

다음과같이 헬퍼를 로드합니다:

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

다음 함수들이 사용가능 합니다:

site_url()

설정파일에 정의된 사이트의 URL을 리턴합니다. URL 에는 index.php(혹은 인덱스파일로 지정한 파일) 파일 및 함수로 전달된 URL 세그먼트들이 포함됩니다.

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

base_url()

설정파일에 정의된 기반(base) URL을 리턴합니다. 예:

echo base_url();

current_url()

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

uri_string()

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

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

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

/blog/comments/123

index_page()

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

echo index_page();

anchor()

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

<a href="http://example.com">Click Here</a>

이 태그는 옵션으로 3개의 파라미터를 가질 수 있습니다:

anchor(uri segments, text, attributes)

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

참고:  프로그램 안에서 사용하는 URL 을 만드실경우 기반URL (http://...) 을 포함하지 마세요. 자동으로 붙습니다. 필요한 URI 새그먼트만 넘겨주시면 됩니다.

두번째 파라미터는 링크로 표시할 텍스트입니다. 공백으로 두시면, URL 그 자체가 사용됩니다.

세번째 파라미터는 링크에 추가하고싶은 속성입니다. 속성은 문자열이나, 연관배열로 설정하실 수 있습니다.

예:

echo anchor('news/local/123', 'title="My News"');

결과: <a href="http://example.com/index.php/news/local/123" title="My News">My News</a>

echo anchor('news/local/123', 'My News', array('title' => 'The best news!'));

결과: <a href="http://example.com/index.php/news/local/123" title="The best news!">My News</a>

anchor_popup()

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

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

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

참고: 위 속성들은 함수의 기본값이므로, 위설정과 다른부분만 직접 설정하시면 됩니다. 위 기본값을 그대로 사용하려면, 세번째 파라미터로 빈 배열을 넘겨주시면 됩니다:

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

mailto()

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

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

anchor() 와 마찬가지로, 세번째 파라미터로 속성을 설정하실 수 있습니다.

safe_mailto()

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

auto_link()

문자열에 포함되어있는 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()

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

$title = "What's wrong with CSS?";

$url_title = url_title($title);

// 결과: whats-wrong-with-css

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

$title = "What's wrong with CSS?";

$url_title = url_title($title, 'underscore');

// Produces: Whats_wrong_with_CSS

prep_url()

이함수는 URL 에서 http:// 이 빠진경우에 추가해주는 기능을 합니다. URL 문자열을 다음과같이 넘겨주세요:

$url = "example.com";

$url = prep_url($url);

redirect()

지정된 로컬URI 로 리디렉트(header redirect) 합니다. 본 헬퍼의 다른 함수들 처럼 , 이 함수도 여러분의 사이트 내에 있는 URL 로 리디렉트하도록 설계되었습니다. 전체 URL 을 지정해서는 안되며,리디렉트 하고자 하는 URI 새그먼트만 지정하셔야 합니다. 이함수는 설정파일에 정의된것을 기반으로 URL 을 생성해 냅니다.

옵션인 두번째 파라미터는 "location" 메소드(기본값)이나 "refresh" 메소드 중 하나를 선택할 수 있도록 해줍니다. Location 은 더 빠르게 동작하나, 윈도우 서버에서는 문제가 발생할 수 있습니다. 옵션이 세번째 파라미터로 특정 HTTP 응답(Response)코드를 지정할 수 있습니다 - 검색엔진을 위해서 301 리디렉트를 생성할경우 사용하실 수 있습니다. 기본응답코드는 302 입니다. 세번째 파라미터는 'location' 리디렉트를 사용할 경우에만 사용가능합니다. 예:

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

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

참고: 이 함수는 서버헤더(headers)를 이용하기 때문에 ,이 함수를 사용하기전에 어떠한 출력도 브라우저로 전송되어서는 안됩니다.
참고: 헤더의 상세한 설정을 위해서는,출력라이브러리의 set_header() 함수를 사용하시면 됩니다.