Heim > Artikel > Backend-Entwicklung > Welche Methoden gibt es, um Strings in thinkphp5 abzufangen? (implementiert durch zwei Methoden)
Der Inhalt dieses Artikels befasst sich mit der Einführung (Code) von zwei Methoden zum Abfangen von Zeichenfolgen in thinkphp5. Ich hoffe, dass er für Sie hilfreich ist.
In der öffentlichen common.php
Methode 1
//字符串截取 function cut_str($sourcestr,$cutlength) { $returnstr=''; $i=0; $n=0; $str_length=strlen($sourcestr);//字符串的字节数 while (($n<$cutlength) and ($i<=$str_length)) { $temp_str=substr($sourcestr,$i,1); $ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii码 if ($ascnum>=224) //如果ASCII位高与224, { $returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范,将3个连续的字符计为单个字符 $i=$i+3; //实际Byte计为3 $n++; //字串长度计1 } elseif ($ascnum>=192) //如果ASCII位高与192, { $returnstr=$returnstr.substr($sourcestr,$i,2); //根据UTF-8编码规范,将2个连续的字符计为单个字符 $i=$i+2; //实际Byte计为2 $n++; //字串长度计1 } elseif ($ascnum>=65 && $ascnum<=90) //如果是大写字母, { $returnstr=$returnstr.substr($sourcestr,$i,1); $i=$i+1; //实际的Byte数仍计1个 $n++; //但考虑整体美观,大写字母计成一个高位字符 } else //其他情况下,包括小写字母和半角标点符号, { $returnstr=$returnstr.substr($sourcestr,$i,1); $i=$i+1; //实际的Byte数计1个 $n=$n+0.5; //小写字母和半角标点等与半个高位字符宽... } } if ($str_length>$i){ $returnstr = $returnstr . "...";//超过长度时在尾处加上省略号 } return $returnstr; }
Methode 2:
//字符串截取并且超出显示省略号 function subtext($text, $length) { if(mb_strlen($text, ‘utf8’) > $length) return mb_substr($text,0,$length,’utf8′).’ …’; return $text; }
Wann In der Vorlage aufgerufen:
{$tops.title | subtext=18}
Verwandte Empfehlungen:
PHP-String-Interception-Funktionsfreigabe, PHP-Intercepts die Zeichenfolge
Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es, um Strings in thinkphp5 abzufangen? (implementiert durch zwei Methoden). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!