URL 헬퍼

URL 헬퍼에는 URL 작업을 지원하는 기능이 포함되어 있습니다.

헬퍼 로드

이 헬퍼는 프레임워크에 의해 자동으로 로드됩니다.

사용 가능한 함수

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

site_url([$uri = ''[, $protocol = null[, $altConfig = null]]])
Parameters
  • $uri (mixed) – URI 문자열 또는 URI 세그먼트 배열

  • $protocol (string) – 프로토콜, ‘http’ or ‘https’

  • $altConfig (\Config\App) – 대체 구성

Returns

Site URL

Return type

string

구성 파일에 지정된 사이트 URL을 반환합니다. index.php 파일 (또는 설정 파일에서 사이트 indexPage로 설정 한 것)이 함수에 전달하는 URI 세그먼트와 마찬가지로 URL에 추가됩니다.

URL이 변경될 때 페이지의 이식성이 향상되도록 로컬 URL을 생성해야 할 때 이 기능을 사용하는 것이 좋습니다.

세그먼트는 선택적으로 문자열 또는 배열로 함수에 전달됩니다.

<?php

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

위의 예는 다음과 같은 것을 반환합니다.

http://example.com/index.php/news/local/123

다음은 배열로 전달된 세그먼트의 예입니다.

<?php

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

다른 구성 환경 설정을 포함하는 다른 사이트에 대한 URL을 생성하는 경우 대체 구성이 유용합니다. 이 함수는 프레임워크 자체 단위 테스트에 사용됩니다.

base_url([$uri = ''[, $protocol = null]])
Parameters
  • $uri (mixed) – URI 문자열 또는 URI 세그먼트 배열

  • $protocol (string) – 프로토콜, ‘http’ or ‘https’

Returns

Base URL

Return type

string

구성 파일에 지정된 사이트 base URL을 반환합니다.

<?php

echo base_url();

이 함수는 indexPage를 추가하지 않고 site_url()과 같은 것을 반환합니다.

또한 site_url()과 같이 세그먼트를 문자열 또는 배열로 제공할 수 있습니다.

<?php

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

위의 예는 다음과 같은 것을 반환합니다.

::

http://example.com/blog/post/123

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

<?php

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

위의 예는 다음과 같은 것을 반환합니다.

http://example.com/images/icons/edit.png
current_url([$returnObject = false[, $request = null]])
Parameters
  • $returnObject (boolean) – 문자열 대신 URI 인스턴스를 반환하려면 True.

  • $request (IncomingRequest|null) – 경로 탐지에 사용할 대체 요청이며 테스트에 유용합니다.

Returns

현재 URL

Return type

string|URI

현재 보고있는 페이지의 전체 URL(세그먼트 포함)을 반환합니다. 그러나 보안상의 이유로 Config\App 설정을 기반으로 생성되며 브라우저 URL과 일치하지 않습니다.

Note

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

<?php

site_url(uri_string());

Important

v4.1.2 이전 버전에서 이 함수는 App::$indexPage의 구성을 무시하는 버그가 있었습니다.

previous_url([$returnObject = false])
Parameters
  • $returnObject (boolean) – 문자열 대신 URI 인스턴스를 반환하려면 True.

Returns

사용자가 이전에 사용했던 URL

Return type

string|URI

사용자가 이전에 방문한 페이지의 전체 URL (세그먼트 포함)을 반환합니다.

Note

HTTP_REFERER 시스템 변수를 맹목적으로 신뢰하는 보안 문제로 인해 CodeIgniter는 사용 가능한 경우 이전에 방문한 페이지를 세션에 저장합니다. 이를 통해 우리는 항상 알려진 신뢰할 수 있는 출처를 사용합니다. 세션이 로드되지 않았거나 사용할 수 없는 경우 안전한 HTTP_REFERER 버전이 사용됩니다.

uri_string([$relative = false])
Parameters
  • $relative (boolean) – baseURL에 대한 상대적인 문자열를 원한다면 true

Returns

URI 문자열

Return type

string

현재 URL의 경로 부분을 반환합니다.

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

함수 실행 결과

/blog/comments/123

또는 상대 파라미터(선택 사항)를 사용

app.baseURL = http://some-site.com/subfolder/

uri_string(); // "/subfolder/blog/comments/123"
uri_string(true); // "blog/comments/123"
index_page([$altConfig = null])
Parameters
  • $altConfig (ConfigApp) – 사용할 대체 구성

Returns

‘index_page’ 값

Return type

mixed

구성 파일에 지정된 사이트 indexPage를 반환합니다.

<?php

echo index_page();

site_url()과 마찬가지로 대체 구성을 지정할 수 있습니다. 다른 구성 환경 설정을 포함하는 다른 사이트에 대한 URL을 생성하는 경우 대체 구성이 유용합니다. 이 함수는 프레임워크 자체 단위 테스트에 사용됩니다.

anchor([$uri = ''[, $title = ''[, $attributes = ''[, $altConfig = null]]]])
Parameters
  • $uri (mixed) – URI 문자열 또는 URI 세그먼트 배열

  • $title (string) – Anchor 제목

  • $attributes (mixed) – HTML 속성

  • $altConfig (ConfigApp) – 사용할 대체 구성

Returns

HTML hyperlink (anchor tag)

Return type

string

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

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

Note

어플리케이션 내부에 링크를 작성하는 경우 base URL (http://…)을 포함하지 마십시오. base URL은 구성 파일에 지정된 정보에서 자동으로 추가됩니다. URL에 추가하려는 URI 세그먼트만 포함하십시오.

두 번째 세그먼트는 링크를 말하려는 텍스트입니다. 비워두면 URL이 사용됩니다.

세 번째 매개 변수에는 링크에 추가하려는 속성 목록이 포함될 수 있습니다. 속성은 간단한 문자열 또는 연관 배열일 수 있습니다.

<?php

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', ['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/index.php">Click here</a>

site_url()과 마찬가지로 대체 구성을 지정할 수 있습니다. 다른 구성 환경 설정을 포함하는 다른 사이트에 대한 URL을 생성하는 경우 대체 구성이 유용합니다. 이 함수는 프레임워크 자체 단위 테스트에 사용됩니다.

Note

앵커 기능으로 전달된 속성은 XSS 공격으로부터 보호하기 위해 자동으로 이스케이프됩니다.

anchor_popup([$uri = ''[, $title = ''[, $attributes = false[, $altConfig = null]]]])
Parameters
  • $uri (string) – URI 문자열

  • $title (string) – Anchor 제목

  • $attributes (mixed) – HTML 속성

  • $altConfig (ConfigApp) – 사용할 대체 구성

Returns

Pop-up hyperlink

Return type

string

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

<?php

$atts = [
    '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

위의 속성은 기능 기본값이므로 필요한 것과 다른 속성만 설정하면 됩니다. 함수가 모든 기본값을 사용하도록 하려면 세 번째 매개 변수에 빈 배열을 전달하십시오.

<?php

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

Note

window_name은 실제로 속성이 아니라 자바 스크립트 window.open() 메소드에 대한 인수입니다. 이름 또는 창 타겟.

Note

위에 나열된 이외의 속성은 앵커 태그에 HTML 속성으로 구문 분석됩니다.

site_url()과 마찬가지로 대체 구성을 지정할 수 있습니다. 다른 구성 환경 설정을 포함하는 다른 사이트에 대한 URL을 생성하는 경우 대체 구성이 유용합니다. 이 함수는 프레임워크 자체 단위 테스트에 사용됩니다.

Note

anchor_popup 함수에 전달된 속성은 자동으로 이스케이프되어 XSS 공격으로 부터 보호됩니다.

mailto($email[, $title = ''[, $attributes = '']])
Parameters
  • $email (string) – E-mail 주소

  • $title (string) – Anchor 제목

  • $attributes (mixed) – HTML 속성

Returns

“mail to” hyperlink

Return type

string

표준 HTML E-mail 링크를 만듭니다.

<?php

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

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

<?php

$attributes = ['title' => 'Mail me'];
echo mailto('me@my-site.com', 'Contact Me', $attributes);

Note

mailto 함수로 전달된 속성은 XSS 공격으로부터 보호하기 위해 자동으로 이스케이프됩니다.

safe_mailto($email[, $title = ''[, $attributes = '']])
Parameters
  • $email (string) – E-mail 주소

  • $title (string) – Anchor 제목

  • $attributes (mixed) – HTML 속성

Returns

spam-safe “mail to” hyperlink

Return type

string

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

Parameters
  • $str (string) – 입력 문자열

  • $type (string) – Link type (‘email’, ‘url’ or ‘both’)

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

Returns

Linkified 문자열

Return type

string

문자열에 포함된 URL 및 전자 메일 주소를 링크로 자동 전환합니다.

<?php

$string = auto_link($string);

두 번째 매개 변수는 URL과 전자 메일 모두 또는 하나만 변환할 지 결정합니다. 매개 변수가 지정되지 않은 경우 기본 작동은 둘 다입니다. 이메일 링크는 safe_mailto()로 인코딩됩니다.

URL만 변환

<?php

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

이메일 주소만 변환

<?php

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

세 번째 파라미터는 링크가 새 창에 표시되는지 여부를 결정한다. 값은 true 또는 false(부울).

<?php

$string = auto_link($string, 'both', true);

Note

인식되는 URL은 ‘www’ 또는 ‘://’로 시작하는 URL입니다.

url_title($str[, $separator = '-'[, $lowercase = false]])
Parameters
  • $str (string) – 입력 문자열

  • $separator (string) – 단어 구분 기호

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

Returns

URL-formatted 문자열

Return type

string

문자열을 입력으로 받아서 사람에게 친숙한 URL 문자열을 만듭니다. URL에 항목 제목을 사용하려는 블로그가 있는 경우 유용합니다.

<?php

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

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

<?php

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

세 번째 파라미터는 소문자 강제 변환 여부를 결정합니다. 기본적으로 변환하지 않습니다. 옵션은 부울 true/false.

<?php

$title     = "What's wrong with CSS?";
$url_title = url_title($title, '-', true);
// Produces: whats-wrong-with-css

php:function:: mb_url_title($str[, $separator = ‘-‘[, $lowercase = false]])

param string $str

입력 문자열

param string $separator

단어 구분 기호 (일반적으로 ‘-’ or ‘_’)

param bool $lowercase

출력 문자열을 소문자로 변환할지 여부를 지정

returns

URL-formatted 문자열

rtype

string

이 함수는 url_title()과 동일하게 작동하지만 모든 강조된 문자를 자동으로 변환합니다.

prep_url([$str = ''[, $secure = false]])
Parameters
  • $str (string) – URL 문자열

  • $secure (boolean) – true for https://

Returns

프로토콜 접두사 URL 문자열

Return type

string

이 함수는 프로토콜 접두사가 URL에서 누락된 경우 http:// 또는 https://를 추가합니다.

URL 문자열을 이렇게 함수에 전달합니다.

<?php

$url = prep_url('example.com');
url_to($controller[, ...$args])
Parameters
  • $controller (string) – 명명된 경로 또는 Controller::method

  • ...$args (mixed) – 라우트에 전달할 하나 이상의 매개변수

Returns

절대 URL

Return type

string

Note

이 함수를 사용하려면 app/Config/routes.php에 controller/method로 정의된 경로가 필요합니다.

앱의 컨트롤러 메소드에 대한 절대 URL을 빌드합니다.

<?php

// The route is defined as:
$routes->get('/', 'Home::index');

?>

<a href="<?= url_to('Home::index') ?>">Home</a>
<!-- Result: 'http://example.com/' -->

라우트에 인수를 추가할 수 있습니다.

<?php

// The route is defined as:
$routes->get('pages/(:segment)', 'Page::index/$1');

?>

<a href="<?= url_to('Page::index', 'home') ?>">Home</a>
<!-- Result: 'http://example.com/pages/home' -->

뷰에 링크를 넣은 후 경로를 변경할 때 유용합니다.

자세한 내용은 리버스(Reverse) 라우팅 또는 명명된 경로 사용를 참조하세요.

url_is($path)
Parameters
  • $path (string) – 현재 URI 경로인지 확인할 경로

Return type

boolean

현재 URL의 경로를 지정된 경로와 비교하여 일치하는지 확인합니다.

<?php

if (url_is('admin')) {
    // ...
}

위의 예는 http://example.com/admin과 일치합니다. “*” 와일드카드를 사용하여 URL의 다른 문자와 일치시킬 수 있습니다.

<?php

if (url_is('admin*')) {
    // ...
}

이는 다음 중 하나와 일치합니다.

  • /admin

  • /admin/

  • /admin/users

  • /admin/users/schools/classmates/…