URL ヘルパー

URL ヘルパーファイルは、URL を処理するのに役立つ関数で構成されています。

ヘルパーのロード

このヘルパーは次のコードを使ってロードします:

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

利用できる機能

次の関数が利用できます:

site_url([$uri = ''[, $protocol = NULL]])
パラメータ:
  • $uri (string) – URI 文字列
  • $protocol (string) – プロトロコル, 例: ‘http’ or ‘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

Here is an example of segments passed as an array:

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

この関数は CI_Config::site_url() のエイリアスです。より多くの情報を 得るには、設定クラス を見てください。

base_url($uri = '', $protocol = NULL)
パラメータ:
  • $uri (string) – URI 文字列
  • $protocol (string) – プロトロコル, 例: ‘http’ or ‘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() のエイリアスです。より多くの情報を 得るには、設定クラス を見てください。

current_url()
返り値:現在の URL
返り値の型:string

現在表示されているページの完全な URL(セグメントを含む)を 返します。

注釈

この関数の呼び出しは次のようなものと同じ意味になります。: | | 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() のエイリアスです。より多くの情報を 得るには、設定クラス を見てください。

index_page()
返り値:‘index_page’ value
返り値の型:mixed

設定ファイルで指定されているサイトの index_page ページを返します。 例:

echo index_page();
anchor($uri = '', $title = '', $attributes = '')
パラメータ:
  • $uri (string) – URI 文字列
  • $title (string) – アンカータイトル
  • $attributes (mixed) – HTML 属性
返り値:

HTML ハイパーリンク(アンカータグ)

返り値の型:

string

サイトの URL にもとづいて、標準の HTML アンカーリンクを生成します。

第1引数は、URL に追加したいセグメントを指定します。 上の site_url() 関数のように、文字列または、 配列でセグメントを指定します。

注釈

アプリケーション内部のリンクを生成するときは、ベースURL(http://...)を含まないようにしてください。 設定ファイルで指定されている情報から、ベース URL は自動的に追加されます。URL に追加したい URI セグメントだけを含めるようにしてください。

第2引数は、リンクに指定したいテキストになります。空のままにしておくと 、URL が使用されます。

第3引数はリンクタグに追加したい属性のリストを指定できます。 属性は、文字列または、 連想配列で指定します。

いくつか例を挙げます:

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 の window オブジェクトの属性(プロパティ)を第3引数で指定できます。 第3引数が設定 されていない場合は、ユーザのブラウザの設定により新しいウィンドウを開き ます。

下記は、属性を指定する場合の例です:

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

注釈

上の属性は、この関数の初期値になりますので、 これと異なる値にしたい箇所を設定するだけで構いません。 すべての属性に初期値を使用する場合は、 単に第3引数に空の配列を渡してください: | | echo anchor_popup(‘news/local/123’, ‘Click Me!’, array());

注釈

window_name は実際の属性ではありませんが、 window name または window target のどちらかを受け入れる JavaScriptの window.open() <http://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() 関数のように、第3引数で 属性を指定できます。:

$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

この関数は、スパムロボットにメールアドレスが収集されてしまうのを防ぐため、 メールアドレスのリンクを JavaScript で書き出すために、 序数を使った難読化バージョンの mailto タグを書き出します。この点を除いて、mailto() 関数と同じです。

パラメータ:
  • $str (string) – 入力文字列
  • $type (string) – リンクタイプ(’email’, ‘url’ or ‘both’)
  • $popup (bool) – ポップアップリンクを生成するかどうか
返り値:

リンク可能な文字列

返り値の型:

string

自動で、文字列に含まれる URL とメールアドレスをリンクに変換します。 例:

$string = auto_link($string);

第2引数は、URL とメールアドレスのどちらを変換するか、あるいは両方を変換するか を指定します。指定しない場合、デフォルトでは両方を変換するようになっています。 Email リンクは上にあるように safe_mailto() を使って エンコードされます。

URL のみを変換する場合:

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

メールアドレスのみを変換する場合:

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

第3引数は、リンクを新しいウィンドウで開くかどうかを指定します。 値は、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

第2引数で、単語の区切りを決めます。初期状態では、ダッシュ( “-” ) が使用されます。次のオプションが選べます: - (dash)または _ (underscore)

例:

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

注釈

第2引数として’dash’ や ‘underscore’ という古い使用法は 非推奨になっています。

第3引数で、文字列を強制的に小文字に変換するかどうかを決めます。 デフォルトでは変換されません。次のオプション(ブール値)が選べます: 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&#58;// を追加します。

次のように URL の文字列を渡します:

$url = prep_url(‘example.com’);
redirect($uri = '', $method = 'auto', $code = NULL)
パラメータ:
  • $uri (string) – URI 文字列
  • $method (string) – リダイレクトメソッド(’auto’, ‘location’ or ‘refresh’)
  • $code (string) – HTTP Response Code(通常 302 or 303)
返り値:

void

指定した URI に対して “ヘッダ リダイレクト” します。完全な URL (http://...) を指定しても生成されますが、 ローカルのリンクなら単にコントローラのセグメントから指定します。URL は設定ファイルの値を元に生成されます。

オプションの第2引数は、特定のリダイレクトメソッドを強制させること 許可します。利用可能なメソッドは auto, locationrefresh です。 Location は高速ですが、 IIS サーバでは信頼性は低下します。 初期状態は auto で、サーバー環境に基づいたメソッドを知的に選択しようと 試みます。

任意の第3引数は特定の HTTP Response Code を設定することを許可します。 - 例えばこれは検索エンジンのために301リダイレクトを生成するために利用できます。 デフォルトの Response Code は302です。第3引数は location だけで*使え、 *refresh では使えません。例:

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

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

注釈

この関数はサーバのヘッダを利用するので、 動作させるにはブラウザに何かを出力する前に、この関数を使う必要があります。

注釈

とても細かいヘッダのコントロールを行う場合は、出力クラスset_header() メソッドを使うべきです。

注釈

IIS ユーザへ: もし Server HTTP ヘッダを隠している場合、 auto メソッドは IIS であることを検知しません。その場合、明示的に refresh メソッドを使用することを推奨します。

注釈

location メソッドを利用する際、 表示しているページが現在 POST 経由でアクセスされており HTTP/1.1 が 利用されている場合、 自動的に 303 HTTP ステータスコードが選択されます。

重要

この関数はスクリプトの実行を終了させます。