Maison >développement back-end >tutoriel php >La fonction d'interception de chaînes chinoises et anglaises de Thinkphp affiche des points de suspension

La fonction d'interception de chaînes chinoises et anglaises de Thinkphp affiche des points de suspension

小云云
小云云original
2018-03-13 13:47:332430parcourir

Thinkphp dispose d'un moteur de modèles intégré comparable à smarty, ce qui nous apporte une grande commodité. Il en va de même pour l'appel de fonctions. Vous pouvez appeler les fonctions dont vous avez besoin comme Smarty, et le responsable a intégré certaines fonctions couramment utilisées que tout le monde peut appeler.

Par exemple, la fonction de chaîne d'interception dont nous parlons aujourd'hui peut être écrite comme ceci dans le moteur de modèles thinkphp : {$vo.title|msubstr=0,5,'utf-8′, false} Quant à { $vo.title}, il est certainement familier à tout le monde. Parlons de la fonction suivante msubstr. Cela signifie intercepter la chaîne $vo.title, en commençant à partir de 0 caractère et en interceptant 5 caractères. Le codage UTF-8 est utilisé et les points de suspension ne sont pas affichés après l'interception par défaut. Si vous souhaitez afficher les points de suspension, remplacez simplement false par true.

Explication de la fonction :

msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true)

  • $str : chaîne à intercepter

  • $start=0 : position de départ, la valeur par défaut commence à 0

  • $length : Longueur d'interception

  • $charset="utf-8″ : Encodage des caractères, UTF-8 par défaut

  • $suffix=true : Que ce soit Des points de suspension s'affichent après les caractères interceptés. La valeur par défaut est true, et false n'est pas affiché

ps : S'il ne peut pas être appelé normalement, cela signifie que vous l'avez fait. pas chargé la bibliothèque de fonctions. Vous pouvez utiliser Load( 'extend'); pour charger la fonction, mettez-la simplement dans l'action~!

Après essai : la fonction officielle msubstr semble de toute façon incapable d'ajouter une ellipse. J'ai trouvé une méthode de modification sur le forum du site officiel, et elle peut être utilisée normalement après le test ~ !

Modifiez la fonction msubstr du fichier Commonextend.PHP avec le code suivant :

  1. 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);    
        }    
        elseif(function_exists('iconv_substr')) {    
            if($suffix)    
                 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;  
    }

Recommandations associées :

Exemple de fonction d'interception de chaîne mb_substr en php

Utilisation de la fonction d'interception de chaîne php

Fonction d'interception de chaîne php en chinois et en anglais (y compris html)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn