Home >Backend Development >PHP Tutorial >Sharing tips on using PHP function mb_strcut_PHP tutorial
We are working on the PHP function mb_strcut. Their usage is similar to substr(), except that one more parameter is added at the end of the PHP function mb_strcut to set the encoding of the string. However, most servers do not open php_mbstring.dll. You need to open php_mbstring.dll in php.ini. If we are not sure whether this function is enabled, then we'd better judge first, if(function_exist(mb_string)).
For example:
<ol class="dp-xml"><li class="alt"><span><span class="tag">< ?</span><span class="tag-name">php</span><span> </span></span></li><li><span>echo mb_substr('这样一来我的字符串<br />就不会有乱码^_^', 0, 7, 'utf-8'); </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li></ol>
Output: This way my word
Example of PHP function mb_strcut
<ol class="dp-xml"><li class="alt"><span><span class="tag">< ?</span><span class="tag-name">php</span><span> </span></span></li><li><span>echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); </span></li><li class="alt"><span class="tag">?></span><span> </span></span></li></ol>
Output: Like this
As can be seen from the above example, mb_substr splits characters by words, while the PHP function mb_strcut splits characters by bytes, but neither will produce half a character. phenomenon, but sometimes the intercepted things will be incorrect when outputting, some are correct and some are incorrect, and the Chinese characters will also appear garbled. The main reasons for these phenomena are the way you program the function and the way you display it. It is caused by inconsistent encoding methods of web pages.
Here we also introduce a custom function for intercepting Chinese strings in PHP:
PHP method to intercept Chinese strings without garbled characters
<ol class="dp-xml"> <li class="alt"><span><span>function GBsubstr($string, $start, $length) { </span></span></li> <li> <span>if(strlen($string)</span><span class="tag">></span><span>$length){ </span> </li> <li class="alt"> <span>$</span><span class="attribute">str</span><span>=</span><span class="attribute-value">null</span><span>; </span> </li> <li> <span>$</span><span class="attribute">len</span><span>=$start+$length; </span> </li> <li class="alt"> <span>for($</span><span class="attribute">i</span><span>=$start;$i</span><span class="tag"><</span><span>$len;$i++){ </span></li><li><span>if(ord(substr($string,$i,1))</span><span class="tag">></span><span>0xa0){ </span> </li> <li class="alt"> <span>$</span><span class="attribute">str.</span><span>=</span><span class="attribute-value">substr</span><span>($string,$i,2); </span> </li> <li><span>$i++; </span></li> <li class="alt"><span>}else{ </span></li> <li> <span>$</span><span class="attribute">str.</span><span>=</span><span class="attribute-value">substr</span><span>($string,$i,1); </span> </li> <li class="alt"><span>} </span></li> <li><span>} </span></li> <li class="alt"><span>return $str.'...'; </span></li> <li><span>}else{ </span></li> <li class="alt"><span>return $string; </span></li> <li><span>} </span></li> <li class="alt"><span>} </span></li> </ol>
The above are the main steps to use the PHP function mb_strcut to solve the problem after garbled characters appear.