Cet article présente principalement l'utilisation de la fonction d'interception de chaînes intégrée de thinkPHP. Il analyse la fonction et l'utilisation spécifique de la fonction d'interception de chaînes intégrée de thinkPHP sous forme d'exemples, ainsi que des conseils de modification du code source pour ceux qui ne le peuvent pas. ajoutez des points de suspension. Les amis dans le besoin peuvent s'y référer. L'exemple suivant
dans cet article décrit l'utilisation de la fonction d'interception de chaîne intégrée de thinkPHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
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 template thinkphp : {$vo.title|msubstr=0,5,'utf-8′,false} As pour {$vo. title}Tout le monde doit être familier avec cela. 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)
Fonction paramètre :
$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, valeur par défaut UTF-8
$suffix=true : s'il faut afficher une ellipse après le caractère intercepté, la valeur par défaut est true pour afficher, false pour ne pas afficher
ps : Si elle ne peut pas être appelée normalement, cela signifie que vous n'avez pas chargé la bibliothèque de fonctions. Vous pouvez utiliser Load('extend'); pour charger la fonction et simplement la mettre dans l'action ~!
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 par le code suivant :
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; }
Ce qui précède est cet article L'intégralité du contenu, j'espère qu'il sera utile à l'étude de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
À propos de la méthode table de la méthode ThinkPHP CURD
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!