HTMLヘルパー

HTMLヘルパーファイルには、HTMLの操作を支援する関数が含まれています。

設定

v4.3.0以降、html_helper 関数における void HTML 要素 (例: <img>) は、デフォルトで HTML5 互換となるように変更されました。XHTML との互換性が必要な場合は、**app/Config/DocTypes.php** の $html5 プロパティを false に設定する必要があります。

このヘルパーの読み込み

このヘルパーは、次のコードを使用して読み込まれます。

<?php

helper('html');

利用可能な関数

以下の関数が利用可能です。

img([$src = ''[, $indexPage = false[, $attributes = '']]])
パラメータ:
  • **$src** (string|array) – 画像ソースURI、または属性と値の配列

  • **$indexPage** (bool) – $src をルーティングされたURI文字列として扱うかどうか

  • **$attributes** (mixed) – 追加のHTML属性

戻り値:

HTML画像タグ

戻り値の型:

string

HTMLの<img />タグを作成できます。最初のパラメータには画像ソースが含まれます。例:

<?php

echo img('images/picture.jpg');
// <img src="http://site.com/images/picture.jpg">

オプションの2つ目のパラメータがあり、これはtrue/falseの値で、作成するアドレスに$config['indexPage']で指定されたページを*src*に追加する必要があるかどうかを指定します。おそらく、これはメディアコントローラーを使用している場合です。

<?php

echo img('images/picture.jpg', true);
// <img src="http://site.com/index.php/images/picture.jpg" alt="">

さらに、すべての属性と値を完全に制御するために、連想配列を最初のパラメータとして渡すことができます。 *alt* 属性が指定されていない場合、CodeIgniterは空の文字列を生成します。

例:

<?php

$imageProperties = [
    'src'    => 'images/picture.jpg',
    'alt'    => 'Me, demonstrating how to eat 4 slices of pizza at one time',
    'class'  => 'post_images',
    'width'  => '200',
    'height' => '200',
    'title'  => 'That was quite a night',
    'rel'    => 'lightbox',
];

img($imageProperties);
// <img src="http://site.com/index.php/images/picture.jpg" alt="Me, demonstrating how to eat 4 slices of pizza at one time" class="post_images" width="200" height="200" title="That was quite a night" rel="lightbox">
img_data([$src = ''[, $indexPage = false[, $attributes = '']]])
パラメータ:
  • **$path** (string) – 画像ファイルへのパス

  • **$mime** (string|null) – 使用するMIMEタイプ、または推測する場合はnull

戻り値:

base64エンコードされたバイナリ画像文字列

戻り値の型:

string

「data:」プロトコルを使用して、画像からsrc対応の文字列を生成します。例:

<?php

$src = img_data('public/images/picture.jpg'); // data:image/jpg;base64,R0lGODl...
echo img($src);

MIMEタイプを指定するためのオプションの2つ目のパラメータがあります。そうでない場合、関数はあなたのMimes設定を使用して推測します。

<?php

$src = img_data('path/img_without_extension', 'image/png'); // data:image/png;base64,HT5A822...

$path は存在し、data: プロトコルでサポートされている読み取り可能な画像形式である必要があることに注意してください。この関数は非常に大きなファイルにはお勧めできませんが、Webからアクセスできないアプリケーションの画像(例:**public/**内)を提供する便利な方法を提供します。

パラメータ:
  • **$href** (string) – リンクファイルのソース

  • **$rel** (string) – 関係タイプ

  • **$type** (string) – 関連ドキュメントのタイプ

  • **$title** (string) – リンクタイトル

  • **$media** (string) – メディアタイプ

  • **$indexPage** (bool) – $src をルーティングされたURI文字列として扱うかどうか

  • **$hreflang** (string) – Hreflangタイプ

戻り値:

HTMLリンクタグ

戻り値の型:

string

HTMLの<link />タグを作成できます。これは、スタイルシートリンクやその他のリンクに役立ちます。パラメータは*href*で、オプションで*rel*、*type*、*title*、*media*、*indexPage*を指定できます。

*indexPage*はブール値で、作成するアドレスに$config['indexPage']で指定されたページを*href*に追加する必要があるかどうかを指定します。

例:

<?php

echo link_tag('css/mystyles.css');
// <link href="http://site.com/css/mystyles.css" rel="stylesheet" type="text/css">

その他の例:

<?php

echo link_tag('favicon.ico', 'shortcut icon', 'image/ico');
// <link href="http://site.com/favicon.ico" rel="shortcut icon" type="image/ico">

echo link_tag('feed', 'alternate', 'application/rss+xml', 'My RSS Feed');
// <link href="http://site.com/feed" rel="alternate" type="application/rss+xml" title="My RSS Feed">

あるいは、すべての属性と値を完全に制御するために、連想配列をlink_tag()関数に渡すことができます。

<?php

$link = [
    'href'  => 'css/printer.css',
    'rel'   => 'stylesheet',
    'type'  => 'text/css',
    'media' => 'print',
];

echo link_tag($link);
// <link href="http://site.com/css/printer.css" rel="stylesheet" type="text/css" media="print">
script_tag([$src = ''[, $indexPage = false]])
パラメータ:
  • **$src** (array|string) – JavaScriptファイルのソース名またはURL、または属性を指定する連想配列

  • **$indexPage** (bool) – $src をルーティングされたURI文字列として扱うかどうか

戻り値:

HTMLスクリプトタグ

戻り値の型:

string

HTMLの`<script></script>`タグを作成できます。パラメータは*src*で、オプションで*indexPage*を指定できます。

*indexPage*はブール値で、*src*で作成されるアドレスに`$config['indexPage']`で指定されたページを追加するかどうかを指定します。

例:

<?php

echo script_tag('js/mystyles.js');
// <script src="http://site.com/js/mystyles.js"></script>

または、連想配列を`script_tag()`関数に渡して、すべての属性と値を完全に制御することもできます。

<?php

$script = ['src' => 'js/printer.js', 'defer' => null];

echo script_tag($script);
// <script src="http://site.com/js/printer.js" defer></script>
ul($list[, $attributes = ''])
パラメータ:
  • **$list** (array) – リストの項目

  • **$attributes** (array) – HTML属性

戻り値:

HTML形式の順序なしリスト

戻り値の型:

string

単純な配列または多次元配列から順序なしHTMLリストを生成できます。例:

<?php

$list = [
    'red',
    'blue',
    'green',
    'yellow',
];

$attributes = [
    'class' => 'boldlist',
    'id'    => 'mylist',
];

echo ul($list, $attributes);

上記のコードは以下を生成します。

<ul class="boldlist" id="mylist">
    <li>red</li>
    <li>blue</li>
    <li>green</li>
    <li>yellow</li>
</ul>

多次元配列を使用した、より複雑な例を次に示します。

<?php

$attributes = [
    'class' => 'boldlist',
    'id'    => 'mylist',
];

$list = [
    'colors' => [
        'red',
        'blue',
        'green',
    ],
    'shapes' => [
        'round',
        'square',
        'circles' => [
            'ellipse',
            'oval',
            'sphere',
        ],
    ],
    'moods' => [
        'happy',
        'upset' => [
            'defeated' => [
                'dejected',
                'disheartened',
                'depressed',
            ],
            'annoyed',
            'cross',
            'angry',
        ],
    ],
];

echo ul($list, $attributes);

上記のコードは以下を生成します。

<ul class="boldlist" id="mylist">
    <li>colors
        <ul>
            <li>red</li>
            <li>blue</li>
            <li>green</li>
        </ul>
    </li>
    <li>shapes
        <ul>
            <li>round</li>
            <li>square</li>
            <li>circles
                <ul>
                    <li>ellipse</li>
                    <li>oval</li>
                    <li>sphere</li>
                </ul>
            </li>
        </ul>
    </li>
    <li>moods
        <ul>
            <li>happy</li>
            <li>upset
                <ul>
                    <li>defeated
                        <ul>
                            <li>dejected</li>
                            <li>disheartened</li>
                            <li>depressed</li>
                        </ul>
                    </li>
                    <li>annoyed</li>
                    <li>cross</li>
                    <li>angry</li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
ol($list, $attributes = '')
パラメータ:
  • **$list** (array) – リストの項目

  • **$attributes** (array) – HTML属性

戻り値:

HTML形式の順序付きリスト

戻り値の型:

string

ul()と同一ですが、`<ul>`の代わりに順序付きリストの`<ol>`タグを生成します。

video($src[, $unsupportedMessage = ''[, $attributes = ''[, $tracks = [][, $indexPage = false]]]])
パラメータ:
  • **$src** (mixed) – ソース文字列またはソースの配列。 source() 関数を参照してください。

  • **$unsupportedMessage** (string) – メディアタグがブラウザでサポートされていない場合に表示するメッセージ

  • **$attributes** (string) – HTML属性

  • **$tracks** (array) – 配列内でtrack関数を使用します。 track() 関数を参照してください。

  • **$indexPage** (bool) –

戻り値:

HTML形式のvideo要素

戻り値の型:

string

単純なソースまたはソース配列からHTML video要素を生成できます。例:

<?php

$tracks = [
    track('subtitles_no.vtt', 'subtitles', 'no', 'Norwegian No'),
    track('subtitles_yes.vtt', 'subtitles', 'yes', 'Norwegian Yes'),
];

echo video('test.mp4', 'Your browser does not support the video tag.', 'controls');

echo video(
    'http://www.codeigniter.com/test.mp4',
    'Your browser does not support the video tag.',
    'controls',
    $tracks
);

echo video(
    [
        source('movie.mp4', 'video/mp4', 'class="test"'),
        source('movie.ogg', 'video/ogg'),
        source('movie.mov', 'video/quicktime'),
        source('movie.ogv', 'video/ogv; codecs=dirac, speex'),
    ],
    'Your browser does not support the video tag.',
    'class="test" controls',
    $tracks
);

上記のコードは以下を生成します。

<video src="test.mp4" controls>
  Your browser does not support the video tag.
</video>

<video src="http://www.codeigniter.com/test.mp4" controls>
  <track src="subtitles_no.vtt" kind="subtitles" srclang="no" label="Norwegian No" />
  <track src="subtitles_yes.vtt" kind="subtitles" srclang="yes" label="Norwegian Yes" />
  Your browser does not support the video tag.
</video>

<video class="test" controls>
  <source src="movie.mp4" type="video/mp4" class="test" />
  <source src="movie.ogg" type="video/ogg" />
  <source src="movie.mov" type="video/quicktime" />
  <source src="movie.ogv" type="video/ogv; codecs=dirac, speex" />
  <track src="subtitles_no.vtt" kind="subtitles" srclang="no" label="Norwegian No" />
  <track src="subtitles_yes.vtt" kind="subtitles" srclang="yes" label="Norwegian Yes" />
  Your browser does not support the video tag.
</video>
audio($src[, $unsupportedMessage = ''[, $attributes = ''[, $tracks = [][, $indexPage = false]]]])
パラメータ:
  • **$src** (mixed) – ソース文字列またはソースの配列。 source() 関数を参照してください。

  • **$unsupportedMessage** (string) – メディアタグがブラウザでサポートされていない場合に表示するメッセージ

  • **$attributes** (string) –

  • **$tracks** (array) – 配列内でtrack関数を使用します。 track() 関数を参照してください。

  • **$indexPage** (bool) –

戻り値:

HTML形式のaudio要素

戻り値の型:

string

video()と同一ですが、`<video>`の代わりに`<audio>`タグを生成します。

source($src = ''[, $type = false[, $attributes = '']])
パラメータ:
  • **$src** (string) – メディアリソースのパス

  • **$type** (bool) – リソースのMIMEタイプ(オプションでコーデックパラメータを指定可能)

  • **$attributes** (array) – HTML属性

戻り値:

HTML sourceタグ

戻り値の型:

string

HTMLの`<source />`タグを作成できます。最初のパラメータにはソースを指定します。例:

<?php

echo source('movie.mp4', 'video/mp4', 'class="test"');
// <source src="movie.mp4" type="video/mp4" class="test">
embed($src = ''[, $type = false[, $attributes = ''[, $indexPage = false]]])
パラメータ:
  • **$src** (string) – 埋め込むリソースのパス

  • **$type** (bool) – MIMEタイプ

  • **$attributes** (array) – HTML属性

  • **$indexPage** (bool) –

戻り値:

HTML embedタグ

戻り値の型:

string

HTMLの`<embed />`タグを作成できます。最初のパラメータには埋め込みソースを指定します。例:

<?php

echo embed('movie.mov', 'video/quicktime', 'class="test"');
// <embed src="movie.mov" type="video/quicktime" class="test">
object($data = ''[, $type = false[, $attributes = '']])
パラメータ:
  • **$data** (string) – リソースのURL

  • **$type** (bool) – リソースのコンテントタイプ

  • **$attributes** (array) – HTML属性

  • **$params** (array) – 配列内でparam関数を使用します。 param() 関数を参照してください。

戻り値:

HTML objectタグ

戻り値の型:

string

HTMLの`<object />`タグを作成できます。最初のパラメータにはオブジェクトデータを指定します。例:

<?php

echo object('movie.swf', 'application/x-shockwave-flash', 'class="test"');

echo object(
    'movie.swf',
    'application/x-shockwave-flash',
    'class="test"',
    [
        param('foo', 'bar', 'ref', 'class="test"'),
        param('hello', 'world', 'ref', 'class="test"'),
    ]
);

上記のコードは以下を生成します。

<object data="movie.swf" class="test"></object>

<object data="movie.swf" class="test">
  <param name="foo" type="ref" value="bar" class="test" />
  <param name="hello" type="ref" value="world" class="test" />
</object>
param($name = ''[, $type = false[, $attributes = '']])
パラメータ:
  • **$name** (string) – パラメータの名前

  • **$value** (string) – パラメータの値

  • **$attributes** (array) – HTML属性

戻り値:

HTML paramタグ

戻り値の型:

string

HTMLの`<param />`タグを作成できます。最初のパラメータにはパラメータソースを指定します。例:

<?php

echo param('movie.mov', 'video/quicktime', 'class="test"');
// <param src="movie.mov" type="video/quicktime" class="test">
track($name = ''[, $type = false[, $attributes = '']])
パラメータ:
  • **$name** (string) – パラメータの名前

  • **$value** (string) – パラメータの値

  • **$attributes** (array) – HTML属性

戻り値:

HTML trackタグ

戻り値の型:

string

時間指定トラックを指定するためのtrack要素を生成します。トラックはWebVTT形式でフォーマットされます。例:

<?php

echo track('subtitles_no.vtt', 'subtitles', 'no', 'Norwegian No');
// <track src="subtitles_no.vtt" kind="subtitles" srclang="no" label="Norwegian No">
doctype([$type = 'html5'])
パラメータ:
  • **$type** (string) – ドキュメントタイプ名

戻り値:

HTML DocTypeタグ

戻り値の型:

string

ドキュメントタイプ宣言(DTD)の生成に役立ちます。デフォルトではHTML 5が使用されますが、多くのドキュメントタイプが利用可能です。

例:

<?php

echo doctype();
// <!DOCTYPE html>

echo doctype('html4-trans');
// <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

以下は、定義済みのドキュメントタイプの選択肢のリストです。これらは設定可能で、**app/Config/DocTypes.php**から取得されます。または、**。env**設定で上書きすることもできます。

ドキュメントタイプ

オプション

結果

XHTML 1.1

xhtml11

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN” “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>

XHTML 1.0 Strict

xhtml1-strict

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>

XHTML 1.0 Transitional

xhtml1-trans

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

XHTML 1.0 Frameset

xhtml1-frame

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>

XHTML Basic 1.1

xhtml-basic11

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML Basic 1.1//EN” “http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd”>

HTML 5

html5

<!DOCTYPE html>

HTML 4 Strict

html4-strict

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>

HTML 4 Transitional

html4-trans

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>

HTML 4 フレームセット

html4-frame

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN” “http://www.w3.org/TR/html4/frameset.dtd”>

MathML 1.01

mathml1

<!DOCTYPE math SYSTEM “http://www.w3.org/Math/DTD/mathml1/mathml.dtd”>

MathML 2.0

mathml2

<!DOCTYPE math PUBLIC “-//W3C//DTD MathML 2.0//EN” “http://www.w3.org/Math/DTD/mathml2/mathml2.dtd”>

SVG 1.0

svg10

<!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.0//EN” “http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd”>

SVG 1.1 完全版

svg11

<!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1//EN” “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd”>

SVG 1.1 基本版

svg11-basic

<!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1 Basic//EN” “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd”>

SVG 1.1 Tiny

svg11-tiny

<!DOCTYPE svg PUBLIC “-//W3C//DTD SVG 1.1 Tiny//EN” “http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd”>

XHTML+MathML+SVG (XHTML ホスト)

xhtml-math-svg-xh

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN” “http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd”>

XHTML+MathML+SVG (SVG ホスト)

xhtml-math-svg-sh

<!DOCTYPE svg:svg PUBLIC “-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN” “http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd”>

XHTML+RDFa 1.0

xhtml-rdfa-1

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML+RDFa 1.0//EN” “http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd”>

XHTML+RDFa 1.1

xhtml-rdfa-2

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML+RDFa 1.1//EN” “http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd”>