Maison >développement back-end >Problème PHP >Comment remplacer les chaînes intermédiaires en php
Comment remplacer la chaîne du milieu en PHP : créez d'abord un exemple de fichier PHP ; puis remplacez la chaîne du milieu via la méthode "public function encodeStr($str){...}".
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
Il y a un astérisque dans au milieu de la chaîne de remplacement php
Cela implique trois fonctions de traitement de chaîne
substr_replace
Remplacer une partie de la chaîne par une autre chaîne
substr_replace(string,replacement,start,length) // string必需。规定要检查的字符串。 // replacement必需。规定要插入的字符串。 // start必需。规定在字符串的何处开始替换。 // 正数 - 在字符串中的指定位置开始替换 // 负数 - 在从字符串结尾的指定位置开始替换 // 0 - 在字符串中的第一个字符处开始替换 // length可选。规定要替换多少个字符。默认是与字符串长度相同。 // 正数 - 被替换的字符串长度 // 负数 - 表示待替换的子字符串结尾处距离 string 末端的字符个数。 // 0 - 在字符串中的第一个字符处开始替换
str_repeat
Spécifiez la chaîne à plusieurs reprises Le nombre de fois
mb_strlen
renvoie la longueur de la chaîne. Différent de strlen, il peut renvoyer le nombre de caractères correspondant en définissant l'encodage des caractères, ce qui résout bien le problème de la longueur des chaînes chinoises
mb_substrRenvoie une partie de la chaîne, similaire à la fonction substr(). Elle cible uniquement les caractères anglais. Si vous souhaitez diviser les caractères chinois, vous devez utiliser mb_substr()
/** * 加密字符串 * addtime 2020年8月18日 14:16:44 * @param [type] $str 待加密的字符串 * @return void */ public function encodeStr($str) { # 判断字符串长度 $length = strlen($str); if ($length == 1) { # 长度为 1 前后拼接 * 号 $newStr = $str.'*'.rand(1,6); }else{ # 长度超过1随机插入 * 号 $newStr = substr_replace($str,str_repeat('*',$length/2),ceil($length/2),$length).mb_substr($str,$length-2,$length,"utf-8"); // str_repeat('*',$length/2) 星号重复字符长度的一半长度 // ceil($length/2) 算出从第几个字符开始 } return $newStr; }Apprentissage recommandé. : "
Tutoriel vidéo PHP 》
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!