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/**内)を提供する便利な方法を提供します。
- link_tag([$href = ''[, $rel = 'stylesheet'[, $type = 'text/css'[, $title = ''[, $media = ''[, $indexPage = false[, $hreflang = '']]]]]]])
- パラメータ:
**$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]]]])
- パラメータ:
- 戻り値:
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]]]])
- パラメータ:
- 戻り値:
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”>