PageRenderTime 55ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/php-chunked-xhtml/function.strtr.html

https://github.com/tsujita/dotfiles
HTML | 214 lines | 179 code | 35 blank | 0 comment | 0 complexity | 0cc6a551eb1bfb21af8ed1b392a3c7bd MD5 | raw file
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  5. <title>文字の変換あるいは部分文字列の置換を行う</title>
  6. </head>
  7. <body><div class="manualnavbar" style="text-align: center;">
  8. <div class="prev" style="text-align: left; float: left;"><a href="function.strtoupper.html">strtoupper</a></div>
  9. <div class="next" style="text-align: right; float: right;"><a href="function.substr-compare.html">substr_compare</a></div>
  10. <div class="up"><a href="ref.strings.html">String 関数</a></div>
  11. <div class="home"><a href="index.html">PHP Manual</a></div>
  12. </div><hr /><div id="function.strtr" class="refentry">
  13. <div class="refnamediv">
  14. <h1 class="refname">strtr</h1>
  15. <p class="verinfo">(PHP 4, PHP 5)</p><p class="refpurpose"><span class="refname">strtr</span> &mdash; <span class="dc-title">文字の変換あるいは部分文字列の置換を行う</span></p>
  16. </div>
  17. <div class="refsect1 description" id="refsect1-function.strtr-description">
  18. <h3 class="title">説明</h3>
  19. <div class="methodsynopsis dc-description">
  20. <span class="type">string</span> <span class="methodname"><strong>strtr</strong></span>
  21. ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$str</code></span>
  22. , <span class="methodparam"><span class="type">string</span> <code class="parameter">$from</code></span>
  23. , <span class="methodparam"><span class="type">string</span> <code class="parameter">$to</code></span>
  24. )</div>
  25. <div class="methodsynopsis dc-description">
  26. <span class="type">string</span> <span class="methodname"><strong>strtr</strong></span>
  27. ( <span class="methodparam"><span class="type">string</span> <code class="parameter">$str</code></span>
  28. , <span class="methodparam"><span class="type">array</span> <code class="parameter">$replace_pairs</code></span>
  29. )</div>
  30. <p class="para rdfs-comment">
  31. 引数を三つ渡した場合この関数は <em><code class="parameter">str</code></em>
  32. のコピーを返しますその際に文字列中に <em><code class="parameter">from</code></em>
  33. の各文字 (シングルバイト) があれば <em><code class="parameter">to</code></em>
  34. の対応する文字に変換しますつまりすべての <em>$from[$n]</em>
  35. <em>$to[$n]</em> に置換されることになりますここで
  36. <em>$n</em> どちらの引数でも共通に有効なオフセットです
  37. </p>
  38. <p class="para">
  39. <em><code class="parameter">from</code></em> <em><code class="parameter">to</code></em>
  40. の長さが異なる場合長い方の余分な文字は無視されます
  41. 返される文字列の長さはもとの <em><code class="parameter">str</code></em> と同じになります
  42. </p>
  43. <p class="para">
  44. 引数を二つだけ渡す場合は二番目の引数を
  45. <em>array(&#039;from&#039; =&gt; &#039;to&#039;, ...)</em> 形式の配列にしなければなりません
  46. 返される値は文字列でもとの文字列中にある配列のキーと同じ部分を対応する値で置換したものとなります
  47. 一番長いキーから順に調べます一度部分文字列の置換を行うと
  48. 置換後の文字列がさらに置換の対象となることはありません
  49. </p>
  50. <p class="para">
  51. この場合は配列のキーと値は任意の長さにすることができますがキーを空にすることだけはできません
  52. さらに返される文字列の長さはもとの <em><code class="parameter">str</code></em>
  53. とは異なる可能性があります
  54. しかしこの関数が最も効率的に働くのはすべてのキーが同じ長さである場合です
  55. </p>
  56. </div>
  57. <div class="refsect1 parameters" id="refsect1-function.strtr-parameters">
  58. <h3 class="title">パラメータ</h3>
  59. <p class="para">
  60. <dl>
  61. <dt>
  62. <span class="term"><em><code class="parameter">str</code></em></span>
  63. <dd>
  64. <p class="para">
  65. 変換する文字列
  66. </p>
  67. </dd>
  68. </dt>
  69. <dt>
  70. <span class="term"><em><code class="parameter">from</code></em></span>
  71. <dd>
  72. <p class="para">
  73. <em><code class="parameter">to</code></em> に変換される文字列
  74. </p>
  75. </dd>
  76. </dt>
  77. <dt>
  78. <span class="term"><em><code class="parameter">to</code></em></span>
  79. <dd>
  80. <p class="para">
  81. <em><code class="parameter">from</code></em> を置換する文字列
  82. </p>
  83. </dd>
  84. </dt>
  85. <dt>
  86. <span class="term"><em><code class="parameter">replace_pairs</code></em></span>
  87. <dd>
  88. <p class="para">
  89. <em><code class="parameter">replace_pairs</code></em> パラメータを
  90. <em><code class="parameter">to</code></em> <em><code class="parameter">from</code></em>
  91. のかわりに使用することができますこの場合は
  92. <em>array(&#039;from&#039; =&gt; &#039;to&#039;, ...)</em> 形式の配列となります
  93. </p>
  94. </dd>
  95. </dt>
  96. </dl>
  97. </p>
  98. </div>
  99. <div class="refsect1 returnvalues" id="refsect1-function.strtr-returnvalues">
  100. <h3 class="title">返り値</h3>
  101. <p class="para">
  102. 変換後の文字列を返します
  103. </p>
  104. <p class="para">
  105. <em><code class="parameter">replace_pairs</code></em> の中に空文字列
  106. (<em>&quot;&quot;</em>) のキーがある場合は
  107. <strong><code>FALSE</code></strong> を返します
  108. </p>
  109. </div>
  110. <div class="refsect1 examples" id="refsect1-function.strtr-examples">
  111. <h3 class="title"></h3>
  112. <p class="para">
  113. <div class="example" id="example-4605">
  114. <p><strong>例1 <span class="function"><strong>strtr()</strong></span> の例</strong></p>
  115. <div class="example-contents">
  116. <div class="phpcode"><code><span style="color: #000000">
  117. <span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">//&nbsp;この形式の場合、strtr()&nbsp;はバイト単位での変換を行います。<br />//&nbsp;したがって、ここではシングルバイトエンコーディングを想定しています。<br /></span><span style="color: #0000BB">$addr&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">strtr</span><span style="color: #007700">(</span><span style="color: #0000BB">$addr</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"äåö"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"aao"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
  118. </span>
  119. </code></div>
  120. </div>
  121. </div>
  122. </p>
  123. <p class="para">
  124. 次の例は引数を二つだけ指定して <span class="function"><strong>strtr()</strong></span>
  125. をコールしたときの挙動を示すものです置換の優先度
  126. (<em>&quot;h&quot;</em> よりもっと長いキーに一致しているのでこの置換は行われていないこと)
  127. そして一度置換した文字列はもう置換の対象にならないことを確認しましょう
  128. </p>
  129. <div class="example" id="example-4606">
  130. <p><strong>例2 2 つの引数を伴う <span class="function"><strong>strtr()</strong></span> の例</strong></p>
  131. <div class="example-contents">
  132. <div class="phpcode"><code><span style="color: #000000">
  133. <span style="color: #0000BB">&lt;?php<br />$trans&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"h"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"-"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"hello"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"hi"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"hi"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"hello"</span><span style="color: #007700">);<br />echo&nbsp;</span><span style="color: #0000BB">strtr</span><span style="color: #007700">(</span><span style="color: #DD0000">"hi&nbsp;all,&nbsp;I&nbsp;said&nbsp;hello"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$trans</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
  134. </span>
  135. </code></div>
  136. </div>
  137. <div class="example-contents"><p>上の例の出力は以下となります</p></div>
  138. <div class="example-contents screen">
  139. <div class="cdata"><pre>
  140. hello all, I said hi
  141. </pre></div>
  142. </div>
  143. </div>
  144. <p class="para">
  145. これらふたつのモードの挙動は大きく異なります引数が三つの場合は
  146. <span class="function"><strong>strtr()</strong></span> はバイト単位で置換し二つの場合はより長い部分文字列を置換します
  147. </p>
  148. <div class="example" id="example-4607">
  149. <p><strong>例3 <span class="function"><strong>strtr()</strong></span> の挙動の比較</strong></p>
  150. <div class="example-contents">
  151. <div class="phpcode"><code><span style="color: #000000">
  152. <span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">strtr</span><span style="color: #007700">(</span><span style="color: #DD0000">"baab"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"ab"</span><span style="color: #007700">,&nbsp;</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&nbsp;</span><span style="color: #007700">=&nbsp;array(</span><span style="color: #DD0000">"ab"&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"01"</span><span style="color: #007700">);<br />echo&nbsp;</span><span style="color: #0000BB">strtr</span><span style="color: #007700">(</span><span style="color: #DD0000">"baab"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$trans</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
  153. </span>
  154. </code></div>
  155. </div>
  156. <div class="example-contents"><p>上の例の出力は以下となります</p></div>
  157. <div class="example-contents screen">
  158. <div class="cdata"><pre>
  159. 1001
  160. ba01
  161. </pre></div>
  162. </div>
  163. </div>
  164. </div>
  165. <div class="refsect1 seealso" id="refsect1-function.strtr-seealso">
  166. <h3 class="title">参考</h3>
  167. <p class="para">
  168. <ul class="simplelist">
  169. <li class="member"> <span class="function"><a href="function.str-replace.html" class="function" rel="rdfs-seeAlso">str_replace()</a> - 検索文字列に一致したすべての文字列を置換する</span></li>
  170. <li class="member"> <span class="function"><a href="function.preg-replace.html" class="function" rel="rdfs-seeAlso">preg_replace()</a> - 正規表現検索および置換を行う</span></li>
  171. </ul>
  172. </p>
  173. </div>
  174. </div><hr /><div class="manualnavbar" style="text-align: center;">
  175. <div class="prev" style="text-align: left; float: left;"><a href="function.strtoupper.html">strtoupper</a></div>
  176. <div class="next" style="text-align: right; float: right;"><a href="function.substr-compare.html">substr_compare</a></div>
  177. <div class="up"><a href="ref.strings.html">String 関数</a></div>
  178. <div class="home"><a href="index.html">PHP Manual</a></div>
  179. </div></body></html>