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

/php/mbstring.overload.html

https://bitbucket.org/thncr/manuals
HTML | 169 lines | 144 code | 25 blank | 0 comment | 0 complexity | 08deb90f1263a997e0266f326a5b0866 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="mbstring.supported-encodings.html">支持的字符编码</a></div>
  9. <div class="next" style="text-align: right; float: right;"><a href="mbstring.php4.req.html">PHP字符编码的要求</a></div>
  10. <div class="up"><a href="book.mbstring.html">多字节字符串</a></div>
  11. <div class="home"><a href="index.html">PHP Manual</a></div>
  12. </div><hr /><div id="mbstring.overload" class="chapter">
  13. <h1>
  14. 函数重载功能
  15. </h1>
  16. <p class="para">
  17. 你也许常常会发现现存的 PHP 应用很难运行在多字节环境下
  18. 发生这种情况的原因是大多数那种 PHP 应用使用了标准的字符串函数类似 <span class="function"><a href="function.substr.html" class="function">substr()</a></span>已知无法处理多字节编码的字符串
  19. </p>
  20. <p class="para">
  21. mbstring 支持一个函数重载功能将对应的多字节版本重载到标准字符处理函数上例如你能够让这类应用在不修改代码的前提下添加多字节的处理能力
  22. 比如启用函数重载后 <span class="function"><a href="function.mb-substr.html" class="function">mb_substr()</a></span> 将会代替 <span class="function"><a href="function.substr.html" class="function">substr()</a></span> 被调用
  23. 在很多情况下这个功能允许让仅支持单字节编码的应用简单地和多字节环境对接
  24. </p>
  25. <p class="para">
  26. 要使用函数重载功能设置 <var class="filename">php.ini</var> 里的 <em>mbstring.func_overload</em> 为正值就是表示为重载函数分类的位掩码组合
  27. 要重载 <span class="function"><a href="function.mail.html" class="function">mail()</a></span> 函数需要设置它为 1字符串函数设置为 2正则表达式函数为 4
  28. 例如当它设置为 7 mailstrings 正则表达式函数将都会被重载
  29. 以下列表显示了重载的函数
  30. <table class="doctable table">
  31. <caption><strong>被重载的函数</strong></caption>
  32. <thead>
  33. <tr>
  34. <th>mbstring.func_overload 的值</th>
  35. <th>原始函数</th>
  36. <th>重载后的函数</th>
  37. </tr>
  38. </thead>
  39. <tbody class="tbody">
  40. <tr>
  41. <td>1</td>
  42. <td> <span class="function"><a href="function.mail.html" class="function">mail()</a></span></td>
  43. <td> <span class="function"><a href="function.mb-send-mail.html" class="function">mb_send_mail()</a></span></td>
  44. </tr>
  45. <tr>
  46. <td>2</td>
  47. <td> <span class="function"><a href="function.strlen.html" class="function">strlen()</a></span></td>
  48. <td> <span class="function"><a href="function.mb-strlen.html" class="function">mb_strlen()</a></span></td>
  49. </tr>
  50. <tr>
  51. <td>2</td>
  52. <td> <span class="function"><a href="function.strpos.html" class="function">strpos()</a></span></td>
  53. <td> <span class="function"><a href="function.mb-strpos.html" class="function">mb_strpos()</a></span></td>
  54. </tr>
  55. <tr>
  56. <td>2</td>
  57. <td> <span class="function"><a href="function.strrpos.html" class="function">strrpos()</a></span></td>
  58. <td> <span class="function"><a href="function.mb-strrpos.html" class="function">mb_strrpos()</a></span></td>
  59. </tr>
  60. <tr>
  61. <td>2</td>
  62. <td> <span class="function"><a href="function.substr.html" class="function">substr()</a></span></td>
  63. <td> <span class="function"><a href="function.mb-substr.html" class="function">mb_substr()</a></span></td>
  64. </tr>
  65. <tr>
  66. <td>2</td>
  67. <td> <span class="function"><a href="function.strtolower.html" class="function">strtolower()</a></span></td>
  68. <td> <span class="function"><a href="function.mb-strtolower.html" class="function">mb_strtolower()</a></span></td>
  69. </tr>
  70. <tr>
  71. <td>2</td>
  72. <td> <span class="function"><a href="function.strtoupper.html" class="function">strtoupper()</a></span></td>
  73. <td> <span class="function"><a href="function.mb-strtoupper.html" class="function">mb_strtoupper()</a></span></td>
  74. </tr>
  75. <tr>
  76. <td>2</td>
  77. <td> <span class="function"><a href="function.stripos.html" class="function">stripos()</a></span></td>
  78. <td> <span class="function"><a href="function.mb-stripos.html" class="function">mb_stripos()</a></span></td>
  79. </tr>
  80. <tr>
  81. <td>2</td>
  82. <td> <span class="function"><a href="function.strripos.html" class="function">strripos()</a></span></td>
  83. <td> <span class="function"><a href="function.mb-strripos.html" class="function">mb_strripos()</a></span></td>
  84. </tr>
  85. <tr>
  86. <td>2</td>
  87. <td> <span class="function"><a href="function.strstr.html" class="function">strstr()</a></span></td>
  88. <td> <span class="function"><a href="function.mb-strstr.html" class="function">mb_strstr()</a></span></td>
  89. </tr>
  90. <tr>
  91. <td>2</td>
  92. <td> <span class="function"><a href="function.stristr.html" class="function">stristr()</a></span></td>
  93. <td> <span class="function"><a href="function.mb-stristr.html" class="function">mb_stristr()</a></span></td>
  94. </tr>
  95. <tr>
  96. <td>2</td>
  97. <td> <span class="function"><a href="function.strrchr.html" class="function">strrchr()</a></span></td>
  98. <td> <span class="function"><a href="function.mb-strrchr.html" class="function">mb_strrchr()</a></span></td>
  99. </tr>
  100. <tr>
  101. <td>2</td>
  102. <td> <span class="function"><a href="function.substr-count.html" class="function">substr_count()</a></span></td>
  103. <td> <span class="function"><a href="function.mb-substr-count.html" class="function">mb_substr_count()</a></span></td>
  104. </tr>
  105. <tr>
  106. <td>4</td>
  107. <td> <span class="function"><a href="function.ereg.html" class="function">ereg()</a></span></td>
  108. <td> <span class="function"><a href="function.mb-ereg.html" class="function">mb_ereg()</a></span></td>
  109. </tr>
  110. <tr>
  111. <td>4</td>
  112. <td> <span class="function"><a href="function.eregi.html" class="function">eregi()</a></span></td>
  113. <td> <span class="function"><a href="function.mb-eregi.html" class="function">mb_eregi()</a></span></td>
  114. </tr>
  115. <tr>
  116. <td>4</td>
  117. <td> <span class="function"><a href="function.ereg-replace.html" class="function">ereg_replace()</a></span></td>
  118. <td> <span class="function"><a href="function.mb-ereg-replace.html" class="function">mb_ereg_replace()</a></span></td>
  119. </tr>
  120. <tr>
  121. <td>4</td>
  122. <td> <span class="function"><a href="function.eregi-replace.html" class="function">eregi_replace()</a></span></td>
  123. <td> <span class="function"><a href="function.mb-eregi-replace.html" class="function">mb_eregi_replace()</a></span></td>
  124. </tr>
  125. <tr>
  126. <td>4</td>
  127. <td> <span class="function"><a href="function.split.html" class="function">split()</a></span></td>
  128. <td> <span class="function"><a href="function.mb-split.html" class="function">mb_split()</a></span></td>
  129. </tr>
  130. </tbody>
  131. </table>
  132. </p>
  133. <blockquote class="note"><p><strong class="note">Note</strong>:
  134. <p class="para">
  135. 不推荐每个目录的范围context内使用函数重载选项因为还无法确定在生产环境中是否稳定也许会导致不确定的行为
  136. </p>
  137. </p></blockquote>
  138. </div>
  139. <hr /><div class="manualnavbar" style="text-align: center;">
  140. <div class="prev" style="text-align: left; float: left;"><a href="mbstring.supported-encodings.html">支持的字符编码</a></div>
  141. <div class="next" style="text-align: right; float: right;"><a href="mbstring.php4.req.html">PHP字符编码的要求</a></div>
  142. <div class="up"><a href="book.mbstring.html">多字节字符串</a></div>
  143. <div class="home"><a href="index.html">PHP Manual</a></div>
  144. </div></body></html>