Maison >développement back-end >tutoriel php >Analyse des problèmes causés par l'utilisation de la méthode php trim

Analyse des problèmes causés par l'utilisation de la méthode php trim

不言
不言avant
2019-04-13 11:46:152773parcourir

Cet article vous apporte une analyse des problèmes causés par l'utilisation de la méthode php trim. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Scénario

Les caractères avant et après la chaîne interceptée en php incluent : ltrim, rtrim, trim trois méthodes

Dans l'exemple suivant, seule la méthode ltrim est utilisée comme un exemple
Dans ma compréhension précédente (bien sûr, je suis très ignorant et je n'ai jamais vu ce code source), si je veux supprimer des chaînes vides, des onglets vides, etc. sur le côté gauche de la chaîne, alors j'utiliserai ltrim directement. " h")); peut obtenir le résultat auquel je m'attendais elloworld

Les éléments ci-dessus sont tous dans la plage que je pensais, et je l'ai toujours utilisé de cette façon, jusqu'à ce qu'un jour nous ayons besoin d'imprimer sur certains. chaînes Effectuez le cryptage openssl_encrypt. Après le cryptage, créez une base64, puis épissez-la avec notre préfixe de chaîne spécial KO :. Une fois chaque cryptage terminé, épissez le caractère KO : De même, avant le décryptage, supprimez d'abord le KO :, puis déchiffrez-le. . Le résultat est que le résultat du décryptage est Peu importe la façon dont je l'ai résolu, il a échoué. Ensuite, j'ai fait quelques points d'arrêt et j'ai constaté que le résultat était différent du résultat attendu lors de l'utilisation de ltrim


Récurrence

<.>

Analyse des causes

<?php
// 以下做一个简单的情景复现

$str = "abccabdefg";
$character_mask = “abc”;    

var_dump(ltrim($str,  $character_mask));    // 输出结果为 bdefg,而不是只截取前三位的abc
Après ce qui précède, vous devriez connaître la raison de la petite démo. La manière la plus simple et la plus populaire est d'effectuer un entraînement par rotation du $str précédent, caractère par caractère, et vérifie s'il est inclus dans le $character_mask suivant. Si c'est le cas, alors interceptez et arrêtez de fonctionner s'il n'est pas là

Expression sous la forme de code ltrim :


Solution

.
<?php 

$str = "abcccabdecbag";

$res = '';
$character_mask = 'abc';

$arrStr = str_split($str);        // 字符串转数组

for ($i=0; $i<=count($arrStr); $i++) {
        if(strpos($character_mask, $arrStr[$i]) !== false) {
                unset($arrStr[$i]);
        } else {
                break;
        }
}

echo ltrim($str, $character_mask);
echo "\r\n";
echo implode($arrStr);
echo "\r\n";
La solution consiste à utiliser certaines fonctions de manipulation de chaînes en php, en ajoutant plus de couches de base. Jugement

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer