Heim >Backend-Entwicklung >PHP-Tutorial >In Thinkphp integrierte Interception-String-Funktion
Thinkphp verfügt über eine integrierte Template-Engine, die mit Smarty vergleichbar ist, was uns großen Komfort bietet. Das Gleiche gilt für das Aufrufen von Funktionen. Sie können die Funktionen, die Sie benötigen, genau wie Smarty aufrufen, und der Beamte verfügt über einige integrierte Funktionen, die jeder aufrufen kann.
Zum Beispiel kann die Interception-String-Funktion, über die wir heute sprechen, in der Thinkphp-Template-Engine so geschrieben werden: {$vo.title|msubstr=0,5,'utf-8′,false} As für {$vo. title}Jeder muss damit vertraut sein. Lassen Sie uns über die folgende Funktion msubstr sprechen. Was es bedeutet, ist, die Zeichenfolge $vo.title abzufangen, beginnend mit 0 Zeichen und 5 Zeichen abzufangen. Es wird UTF-8-Codierung verwendet und die Auslassungspunkte werden nach dem Abfangen standardmäßig nicht angezeigt. Wenn Sie die Auslassungspunkte anzeigen möchten, ändern Sie einfach „false“ in „true“.
Funktionserklärung:
msubstr($str, $start=0, $length, $charset=“utf-8″, $suffix=true)
$str: zum Abfangen String
$start=0: Startposition, Standard beginnt bei 0
$length: Abfanglänge
$charset=“utf-8″: Zeichenkodierung, Standard UTF-8
$suffix =true : Gibt an, ob nach dem abgefangenen Zeichen eine Ellipse angezeigt werden soll. Die Standardeinstellung ist „true“, um anzuzeigen, „false“, um nicht anzuzeigen.
Hinweis: Wenn es nicht normal aufgerufen werden kann, bedeutet dies, dass Sie die Funktionsbibliothek nicht geladen haben . Sie können Load('extend'); verwenden, um die Funktion zu laden, fügen Sie sie einfach in die Aktion ein~!
Hinweis: Die Methode zur Erweiterung der Funktionsbibliothek kann nicht direkt verwendet werden. Sie muss vor der Verwendung in die Projektfunktionsbibliothek geladen oder kopiert werden.
Um die erweiterte Funktionsbibliothek zu laden, verwenden Sie:
Load('extend');
Nach dem Laden der erweiterten Funktionsbibliothek können Sie alle darin enthaltenen Funktionen aufrufen.
function index(){
Load('extend'); //hier hier!
if($_POST['password']!=$_POST['repassword']){
$this->error('Zwei Passwörter sind inkonsistent');
$user=D(' user');
if($vo=$user->create()){
...
}
Nach dem Test: Die offizielle msubstr-Funktion scheint ohnehin ohne die Auslassungspunkte hinzugefügt zu werden Ich habe im offiziellen Website-Forum eine Änderungsmethode gefunden, die nach dem Testen normal verwendet werden kann ~! Ändern Sie die msubstr-Funktion der Datei Commonextend.php in den folgenden Code:
Php code
/**
+---------------- ----- ---------------
* String-Interception, unterstützt chinesische und andere Codierungen
+-------- ---- ---------------------------------------------- -
* @static
* @access public
+----------------------- ----- ----------------
* @param string $str Die Zeichenfolge das muss konvertiert werden
* @param string $start start position
* @param string $length interception length
* @param string $charset Kodierungsformat
* @param string $ Suffix schneidet Anzeigezeichen ab
+------------------------------- -------- ----
* @return string
+------- ------ -------------------------------------------- ---
*/
function msubstr($ str , $start=0, $length, $charset="utf-8", $suffix=true)
{
if(function_exists("mb_substr")){
if($suffix)
return mb_substr($str, $start, $length, $charset)."..."
else
return mb_substr ($str, $start, $length, $charset); >
return iconv_substr($str,$start,$length,$charset)."..." else return iconv_substr($str,$start,$length ,$charset); } $re['utf-8'] = "/[x01-x7f] |[xc2-xdf][x80-xbf]|[xe0- xef][x80-xbf]{2}|[xf0-xff][x80-xbf]{3}/"; $re ['gb2312'] = "/[x01-x7f]|[ xb0-xf7][xa0-xfe]/" $re['gbk'] = "/[x01-x7f]|[ x81-xfe][x40-xfe]/";$re['big5'] = "/[x01-x7f]|[x81-xfe]([x40-x7e]|xa1-xfe])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("",array_slice($match[0], $start, $length));
if($suffix) return $slice."…";
return $slice;
}