Home >php教程 >php手册 >PHP Substr库函数的功能介绍

PHP Substr库函数的功能介绍

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-13 11:08:27921browse

初学下面这个PHP Substr库函数程序不算完美,但处理一般的中文(GB18030,GB2312,BIG5)是没有问题的。这个函数不适合utf-8编码的文字。

<ol class="dp-xml">
<li class="alt"><span><span>//$str字符串  </span></span></li>
<li><span>//$max 最大字符数  </span></li>
<li class="alt"><span>function Substring($str,$max){  </span></li>
<li>
<span>$</span><span class="attribute">cnt</span><span>=</span><span class="attribute-value">0</span><span>; //实际计数  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">index</span><span>=</span><span class="attribute-value">0</span><span>; //当前索引  </span>
</li>
<li>
<span>$</span><span class="attribute">output</span><span>=</span><span class="attribute-value">''</span><span>; //输出  </span>
</li>
<li class="alt"><span>//  </span></li>
<li>
<span>while($cnt</span><span class="tag"><span>$max && $index</span><span class="tag"><span class="tag-name">strlen</span><span>($str)){  </span></span></span>
</li>
<li class="alt">
<span>$</span><span class="attribute">output.</span><span>=$str[$index];  </span>
</li>
<li><span>//big5  </span></li>
<li class="alt">
<span>if(ord($str[$index])</span><span class="tag">></span><span>=0x81 &&<br> ord($str[$index])</span><span class="tag"><span>=0xfe){  </span></span>
</li>
<li>
<span>if($index+1</span><span class="tag"><span class="tag-name">strlen</span><span>($str)){  </span></span>
</li>
<li class="alt">
<span>if( (ord($str[$index+1])</span><span class="tag">></span><span>=0x40 <br>&& ord($str[$index+1])</span><span class="tag"><span class="tag-name">0x7e</span><span>)   </span></span>
</li>
<li>
<span>|| (ord($str[$index+1])</span><span class="tag">></span><span>=0xa1 <br>&& ord($str[$index+1])</span><span class="tag"><span>=0xfe) ){  </span></span>
</li>
<li class="alt"><span>$index++;  </span></li>
<li>
<span>$</span><span class="attribute">output.</span><span>=$str[$index];  </span>
</li>
<li class="alt"><span>}  </span></li>
<li><span>}  </span></li>
<li class="alt"><span>}  </span></li>
<li><span>//gb2312  </span></li>
<li class="alt">
<span>else if(ord($str[$index])</span><span class="tag">></span><span>=0xa1<br> && ord($str[$index])</span><span class="tag"><span>=0xf7){  </span></span>
</li>
<li>
<span>$</span><span class="attribute">output.</span><span>=$str[$index];  </span>
</li>
<li class="alt">
<span>if($index+1</span><span class="tag"><span class="tag-name">strlen</span><span>($str)){  </span></span>
</li>
<li>
<span>if(ord($str[$index+1])</span><span class="tag">></span><span>=0xa1 <br>&& ord($str[$index+1])</span><span class="tag"><span class="tag-name">0xfe</span><span>){  </span></span>
</li>
<li class="alt"><span>$index++;  </span></li>
<li>
<span>$</span><span class="attribute">output.</span><span>=$str[$index];  </span>
</li>
<li class="alt"><span>}  </span></li>
<li><span>}  </span></li>
<li class="alt"><span>}  </span></li>
<li><span>else{   </span></li>
<li class="alt"><span>}  </span></li>
<li><span>$cnt++;  </span></li>
<li class="alt"><span>$index++;  </span></li>
<li><span>}  </span></li>
<li class="alt"><span>return $output;  </span></li>
<li><span>}  </span></li>
</ol>

以上代码示例就是PHP Substr库函数在截取中文字符时的具体使用方法。


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn