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

不言
Libérer: 2023-04-05 20:16:02
avant
2717 Les gens l'ont consulté

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
Copier après la connexion
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";
Copier après la connexion
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!

Étiquettes associées:
php
source:segmentfault.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!