/php-chunked-xhtml/function.strtr.html
HTML | 214 lines | 179 code | 35 blank | 0 comment | 0 complexity | 0cc6a551eb1bfb21af8ed1b392a3c7bd MD5 | raw file
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <title>文字の変換あるいは部分文字列の置換を行う</title>
- </head>
- <body><div class="manualnavbar" style="text-align: center;">
- <div class="prev" style="text-align: left; float: left;"><a href="function.strtoupper.html">strtoupper</a></div>
- <div class="next" style="text-align: right; float: right;"><a href="function.substr-compare.html">substr_compare</a></div>
- <div class="up"><a href="ref.strings.html">String 関数</a></div>
- <div class="home"><a href="index.html">PHP Manual</a></div>
- </div><hr /><div id="function.strtr" class="refentry">
- <div class="refnamediv">
- <h1 class="refname">strtr</h1>
- <p class="verinfo">(PHP 4, PHP 5)</p><p class="refpurpose"><span class="refname">strtr</span> — <span class="dc-title">文字の変換あるいは部分文字列の置換を行う</span></p>
- </div>
-
- <div class="refsect1 description" id="refsect1-function.strtr-description">
- <h3 class="title">説明</h3>
- <div class="methodsynopsis dc-description">
- <span class="type">string</span> <span class="methodname"><strong>strtr</strong></span>
- ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$str</code></span>
- , <span class="methodparam"><span class="type">string</span> <code class="parameter">$from</code></span>
- , <span class="methodparam"><span class="type">string</span> <code class="parameter">$to</code></span>
- )</div>
- <div class="methodsynopsis dc-description">
- <span class="type">string</span> <span class="methodname"><strong>strtr</strong></span>
- ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$str</code></span>
- , <span class="methodparam"><span class="type">array</span> <code class="parameter">$replace_pairs</code></span>
- )</div>
- <p class="para rdfs-comment">
- 引数を三つ渡した場合、この関数は <em><code class="parameter">str</code></em>
- のコピーを返します。その際に、文字列中に <em><code class="parameter">from</code></em>
- の各文字 (シングルバイト) があれば <em><code class="parameter">to</code></em>
- の対応する文字に変換します。つまり、すべての <em>$from[$n]</em>
- が <em>$to[$n]</em> に置換されることになります。ここで
- <em>$n</em> は、どちらの引数でも共通に有効なオフセットです。
- </p>
- <p class="para">
- <em><code class="parameter">from</code></em> と <em><code class="parameter">to</code></em>
- の長さが異なる場合、長い方の余分な文字は無視されます。
- 返される文字列の長さは、もとの <em><code class="parameter">str</code></em> と同じになります。
- </p>
- <p class="para">
- 引数を二つだけ渡す場合は、二番目の引数を
- <em>array('from' => 'to', ...)</em> 形式の配列にしなければなりません。
- 返される値は文字列で、もとの文字列中にある配列のキーと同じ部分を対応する値で置換したものとなります。
- 一番長いキーから順に調べます。一度部分文字列の置換を行うと、
- 置換後の文字列がさらに置換の対象となることはありません。
- </p>
- <p class="para">
- この場合は、配列のキーと値は任意の長さにすることができますが、キーを空にすることだけはできません。
- さらに、返される文字列の長さはもとの <em><code class="parameter">str</code></em>
- とは異なる可能性があります。
- しかし、この関数が最も効率的に働くのは、すべてのキーが同じ長さである場合です。
- </p>
- </div>
- <div class="refsect1 parameters" id="refsect1-function.strtr-parameters">
- <h3 class="title">パラメータ</h3>
- <p class="para">
- <dl>
- <dt>
- <span class="term"><em><code class="parameter">str</code></em></span>
- <dd>
- <p class="para">
- 変換する文字列。
- </p>
- </dd>
- </dt>
- <dt>
- <span class="term"><em><code class="parameter">from</code></em></span>
- <dd>
- <p class="para">
- <em><code class="parameter">to</code></em> に変換される文字列。
- </p>
- </dd>
- </dt>
- <dt>
- <span class="term"><em><code class="parameter">to</code></em></span>
- <dd>
- <p class="para">
- <em><code class="parameter">from</code></em> を置換する文字列。
- </p>
- </dd>
- </dt>
- <dt>
- <span class="term"><em><code class="parameter">replace_pairs</code></em></span>
- <dd>
- <p class="para">
- <em><code class="parameter">replace_pairs</code></em> パラメータを
- <em><code class="parameter">to</code></em> や <em><code class="parameter">from</code></em>
- のかわりに使用することができます。この場合は
- <em>array('from' => 'to', ...)</em> 形式の配列となります。
- </p>
- </dd>
- </dt>
- </dl>
- </p>
- </div>
-
- <div class="refsect1 returnvalues" id="refsect1-function.strtr-returnvalues">
- <h3 class="title">返り値</h3>
- <p class="para">
- 変換後の文字列を返します。
- </p>
- <p class="para">
- <em><code class="parameter">replace_pairs</code></em> の中に空文字列
- (<em>""</em>) のキーがある場合は
- <strong><code>FALSE</code></strong> を返します。
- </p>
- </div>
- <div class="refsect1 examples" id="refsect1-function.strtr-examples">
- <h3 class="title">例</h3>
- <p class="para">
- <div class="example" id="example-4605">
- <p><strong>例1 <span class="function"><strong>strtr()</strong></span> の例</strong></p>
- <div class="example-contents">
- <div class="phpcode"><code><span style="color: #000000">
- <span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">// この形式の場合、strtr() はバイト単位での変換を行います。<br />// したがって、ここではシングルバイトエンコーディングを想定しています。<br /></span><span style="color: #0000BB">$addr </span><span style="color: #007700">= </span><span style="color: #0000BB">strtr</span><span style="color: #007700">(</span><span style="color: #0000BB">$addr</span><span style="color: #007700">, </span><span style="color: #DD0000">"äåö"</span><span style="color: #007700">, </span><span style="color: #DD0000">"aao"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
- </span>
- </code></div>
- </div>
- </div>
- </p>
- <p class="para">
- 次の例は、引数を二つだけ指定して <span class="function"><strong>strtr()</strong></span>
- をコールしたときの挙動を示すものです。置換の優先度
- (<em>"h"</em> よりもっと長いキーに一致しているので、この置換は行われていないこと)、
- そして一度置換した文字列はもう置換の対象にならないことを確認しましょう。
- </p>
- <div class="example" id="example-4606">
- <p><strong>例2 2 つの引数を伴う <span class="function"><strong>strtr()</strong></span> の例</strong></p>
- <div class="example-contents">
- <div class="phpcode"><code><span style="color: #000000">
- <span style="color: #0000BB"><?php<br />$trans </span><span style="color: #007700">= array(</span><span style="color: #DD0000">"h" </span><span style="color: #007700">=> </span><span style="color: #DD0000">"-"</span><span style="color: #007700">, </span><span style="color: #DD0000">"hello" </span><span style="color: #007700">=> </span><span style="color: #DD0000">"hi"</span><span style="color: #007700">, </span><span style="color: #DD0000">"hi" </span><span style="color: #007700">=> </span><span style="color: #DD0000">"hello"</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">strtr</span><span style="color: #007700">(</span><span style="color: #DD0000">"hi all, I said hello"</span><span style="color: #007700">, </span><span style="color: #0000BB">$trans</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
- </span>
- </code></div>
- </div>
- <div class="example-contents"><p>上の例の出力は以下となります。</p></div>
- <div class="example-contents screen">
- <div class="cdata"><pre>
- hello all, I said hi
- </pre></div>
- </div>
- </div>
- <p class="para">
- これらふたつのモードの挙動は大きく異なります。引数が三つの場合は
- <span class="function"><strong>strtr()</strong></span> はバイト単位で置換し、二つの場合はより長い部分文字列を置換します。
- </p>
- <div class="example" id="example-4607">
- <p><strong>例3 <span class="function"><strong>strtr()</strong></span> の挙動の比較</strong></p>
- <div class="example-contents">
- <div class="phpcode"><code><span style="color: #000000">
- <span style="color: #0000BB"><?php<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">strtr</span><span style="color: #007700">(</span><span style="color: #DD0000">"baab"</span><span style="color: #007700">, </span><span style="color: #DD0000">"ab"</span><span style="color: #007700">, </span><span style="color: #DD0000">"01"</span><span style="color: #007700">),</span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$trans </span><span style="color: #007700">= array(</span><span style="color: #DD0000">"ab" </span><span style="color: #007700">=> </span><span style="color: #DD0000">"01"</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">strtr</span><span style="color: #007700">(</span><span style="color: #DD0000">"baab"</span><span style="color: #007700">, </span><span style="color: #0000BB">$trans</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
- </span>
- </code></div>
- </div>
- <div class="example-contents"><p>上の例の出力は以下となります。</p></div>
- <div class="example-contents screen">
- <div class="cdata"><pre>
- 1001
- ba01
- </pre></div>
- </div>
- </div>
- </div>
- <div class="refsect1 seealso" id="refsect1-function.strtr-seealso">
- <h3 class="title">参考</h3>
- <p class="para">
- <ul class="simplelist">
- <li class="member"> <span class="function"><a href="function.str-replace.html" class="function" rel="rdfs-seeAlso">str_replace()</a> - 検索文字列に一致したすべての文字列を置換する</span></li>
- <li class="member"> <span class="function"><a href="function.preg-replace.html" class="function" rel="rdfs-seeAlso">preg_replace()</a> - 正規表現検索および置換を行う</span></li>
- </ul>
- </p>
- </div>
- </div><hr /><div class="manualnavbar" style="text-align: center;">
- <div class="prev" style="text-align: left; float: left;"><a href="function.strtoupper.html">strtoupper</a></div>
- <div class="next" style="text-align: right; float: right;"><a href="function.substr-compare.html">substr_compare</a></div>
- <div class="up"><a href="ref.strings.html">String 関数</a></div>
- <div class="home"><a href="index.html">PHP Manual</a></div>
- </div></body></html>