PHP string interception custom function

高洛峰
Release: 2016-10-21 10:08:16
Original
1050 people have browsed it

The PHP string interception custom function is a function we often use in the development process. Generally, it is OK to use PHP’s built-in functions, but it is not particularly easy to use, especially the support for Chinese is not particularly friendly, so we use our own Customize one.

//$Str为截取字符串,$Length为需要截取的长度
function cut($Str, $Length,$more=true) {
    global $s;
    $i = 0;
    $l = 0;
    $ll = strlen($Str);
    $s = $Str;
    $f = true;
    while ($i <= $ll) {
        if (ord($Str{$i}) < 0x80) {
            $l++; $i++;
        } else if (ord($Str{$i}) < 0xe0) {
            $l++; $i += 2;
        } else if (ord($Str{$i}) < 0xf0) {
            $l += 2; $i += 3;
        } else if (ord($Str{$i}) < 0xf8) {
            $l += 1; $i += 4;
        } else if (ord($Str{$i}) < 0xfc) {
            $l += 1; $i += 5;
        } else if (ord($Str{$i}) < 0xfe) {
            $l += 1; $i += 6;
        }
        if (($l >= $Length - 1) && $f) {
            $s = substr($Str, 0, $i);
            $f = false;
        }
        if (($l > $Length) && ($i < $ll) && $more) {
            $s = $s . &#39;...&#39;; break; //如果进行了截取,字符串末尾加省略符号“...”
        }
    }
    return $s;
}
Copy after login

The calling method is very simple. Just call the method name directly in an ordinary php file:

cut();
Copy after login

, but parameters must be passed in. Generally, the first and second are required, and the third is optional

For example, if we want to intercept the first 10 characters of a string, then we call

cut($str,10);
Copy after login

like this, where $str is the string to be intercepted and 10 is the length.

Because by default, if the length before interception exceeds the length after interception, the excess part function will use '...' by default to replace the following string

If we don't want the excess part to be hidden, replace it with ' ...', then we only need to add another parameter 'false' at the end, such as

cut($str,10,false);
Copy after login


Related labels:
php
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template