Supprimez les caractères suivants ½ ´ ¤ £ € ¨ en utilisant php mais sans utiliser les fonctions preg_replace ou str_replace
P粉163465905
P粉163465905 2023-09-12 20:08:13
0
1
445

J'ai un problème à résoudre. Je ne peux pas utiliserpreg_replace 或 str_replacecar nous ne pouvons pas prédéterminer les caractères puisque les données proviennent de la saisie d'un formulaire.

J'ai essayé de supprimer ces caractères de ceci$name "Test ½ ´ ¤ £ € ¨"½ ´ ¤ £ € ¨;

Il en va de même pour le front-end, les caractères ne peuvent pas être prédéterminés

J'ai essayé les méthodes ci-dessous mais aucune n'a fonctionné

$name = "Test ½ ´ ¤ £ € ¨"; mb_convert_encoding(strval($name); utf8_decode(strval($name);

Mon résultat idéal estTest

P粉163465905
P粉163465905

répondre à tous (1)
P粉731861241

Vous pouvez toujours parcourir les caractères d'une chaîne. Mais attention : PHP ne supporte pas nativement Unicode.

$remove = array( '½', '´', '¤', '£', '€' ); $result = ''; $name = "Test ½ ´ ¤ £ € ¨"; $count = mb_strlen($name, 'UTF-8'); for( $i = 0; $i < $count; $i++ ){ $char = mb_substr( $name, $i, 1, 'UTF-8' ); if( ! in_array( $char, $remove ) { $result .= $char; } }

Cela parcourt les caractères multi-octets dans une chaîne fournie par l'utilisateur et vous permet d'en faire ce que vous voulez. L'exemple construit une chaîne résultante, en omettant les caractères que vous avez mentionnés. (Pas débogué, désolé.)

(À mon humble avis, je pense que vos raisons pour éviter les fonctions de remplacement de chaîne sont probablement fausses. L'avantage de l'utilisation de classes de caractères regex est le suivant : les auteurs de regex ont résolu de nombreux cas étranges dans lesquels Unicode inclut de nombreuses situations qui mettent les gens mal à l'aise)

.
    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!