Home  >  Article  >  Backend Development  >  PHP string interception custom function

PHP string interception custom function

高洛峰
高洛峰Original
2016-10-21 10:08:16995browse

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;
}

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

cut();

, 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);

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);


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