Solution aux espaces PHP qui ne peuvent pas être supprimés : 1. Utilisez un éditeur hexadécimal pour afficher les octets ; 2. Ajoutez le paramètre u à "regex-pattern" ; 3. Utilisez "str_replace(' ', '', $fieldname ) ;" méthode pour remplacer les espaces.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.
php Que dois-je faire si je ne parviens pas à supprimer les espaces ?
Je reçois une chaîne PHP et je dois supprimer des espaces. J'ai utilisé le code suivant mais lorsque je fais écho à $classname, il affiche uniquement la chaîne qui contient encore des espaces.
$fieldname = the_sub_field('venue_title'); $classname = str_replace(' ', '', $fieldname); echo $classname;
Utilisez un éditeur hexadécimal pour regarder les octets, si les espaces dans le HEX ne sont pas 20 alors ce ne sont pas des espaces "normaux". Vous pouvez convertir en HEX à l’aide d’une simple fonction en PHP.
Duplication possible de la suppression des espaces à l'intérieur des variables en PHP
Essayez d'ajouter le paramètre u au modèle d'expression régulière car les chaînes peuvent avoir un encodage UTF-8 :
$classname = preg_replace('/\s+/u', '', $fieldname);
Wow. Merci beaucoup! aide!
C'est la seule chose qui fonctionne pour moi
Pareil ici. Les chaînes sont récupérées à partir des champs méta WordPress. Enregistré dans le panneau d'administration, après "copier-coller" depuis l'ancien site Web, en utilisant un encodage différent...
Si vous savez que l'espace blanc est dû uniquement aux espaces, vous pouvez utiliser :
$classname = str_replace(' ','',$fieldname );
Mais si cela peut être dû aux espaces , vous pouvez utiliser :
$classname = preg_replace('/\s+/','',$fieldname )
Essayez d'utiliser s+ au lieu de h+ pour obtenir des espaces horizontaux, cela préservera les nouvelles lignes si nécessaire.
Le problème est peut-être que le caractère n'est pas un espace, mais un autre caractère d'espacement.
Essayez
$classname = preg_replace('/\s/', '', $fieldname);
en utilisant trim comme ceci
TRIM($fieldname);
EDIT :
preg_replace('/\s+/', '', $fieldname);
trim() ne supprimera que les espaces du début et de la fin de la chaîne
'trim()' ne supprimera qu'au début ou à la fin de la chaîne chaîne. Dans l'exemple de Paul, des caractères d'espacement peuvent figurer dans la chaîne.
Le problème est le champ qu'il extrait, pas le reste de PHP. 'the_sub_field('venue_title')' extrait le champ du plugin wordpress 'Advanced Custom Fields', mais cette fonction est utilisée pour afficher les données au lieu de simplement les récupérer. Au lieu de cela, j'utilise 'get_sub_field('venue_title')' et cela fonctionne. Bravo pour cette aide
C'est la bonne réponse à cette menace, elle doit être signalée
Il se pourrait que l'espace ne soit pas vraiment de l'espace, mais une autre forme d'espace blanc.
Vous voudrez peut-être essayer :
$classname = preg_replace('/\s+/', '', $fieldname);
D'ici.
Essayez de remplacer les espaces horizontaux par h+, cela préservera les nouvelles lignes si nécessaire.
$fieldname ="I am 21 Years Old"; $classname = str_replace(' ', '', $fieldname); echo $classname; ?>
Cela fonctionne parfaitement.
Vérifiez la valeur de retour via cette fonction : the_sub_field('venue_title');
Je pense que le problème est que la chaîne n'est pas traitée comme une chaîne. Cela nécessite "de chaque côté. Comment feriez-vous cela en PHP ? Par exemple $fieldname="'".the_sub_field('venue_title')."'";
utilisez "".the_sub_field('venue_title')." "+ the_sub_field('venue_title')+"
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!