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');
위의 예는 다음과 같은 것을 반환합니다.
이것은
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 태그의 난독화된 버전을 작성합니다.
- auto_link($str[, $type = 'both'[, $popup = false]])
- 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/…