2011-06-22 1 views
-3

J'utilise php; et je lis que si je demande à l'utilisateur d'entrer des informations sur lui-même par une forme puis quand je avoir accès à cette information, je devrais mieux utiliserLa fonction Trim n'effleure pas vraiment

$var=mysqli_real_escape_string($dbc,trim($_POST['name'])); 

car il supprime tous les espaces du champ de texte et d'autres symboles indésirables, mais il ne supprime vraiment pas les espaces? Aide!

+1

Pourriez-vous nous donner un exemple de l'entrée, de la sortie que vous obtenez et de la sortie que vous attendez? Cela nous aiderait probablement à dire ce qui se passe. Mais vous réalisez que [trim()] (http://php.net/manual/fr/function.trim.php) ne fait que tronquer les choses du début et de la fin de la chaîne, n'est-ce pas quelque chose au milieu? (c'est-à-dire 'trim ('ceci est un test')' => ''c'est un test''.) –

+0

Il ne supprimera que les espaces avant et arrière. Voulez-vous supprimer _all_ spaces? – Dogbert

+0

'trim' supprime uniquement les espaces ** leading ** et ** trailing **, pas tous les espaces de la chaîne. – deceze

Répondre

6

trim() ne supprime pas tous les espaces, seulement les espaces de début et de fin.

+0

Pour rogner des espaces insécables, utilisez: 'trim ($ matching_image, chr (160)); // 160 est le code ASCII pour l'espace insécable ' – Heitor

0

essayer:

$var=mysqli_real_escape_string($dbc,str_replace(" ", "", $_POST['name'])); 
1

trim() va supprimer dès le début et à la fin de la chaîne, the following:

  1. "" (ASCII 32 (0x20)), un espace ordinaire.
  2. "\ t" (ASCII 9 (0x09)), un onglet.
  3. "\ n" (ASCII 10 (0x0A)), une nouvelle ligne (saut de ligne).
  4. "\ r" (ASCII 13 (0x0D)), un retour chariot.
  5. "\ 0" (ASCII 0 (0x00)), l'octet NUL.
  6. "\ x0B" (ASCII 11 (0x0B)), une tabulation verticale.

En outre, comme l'a également noté @Wesley Murch, dans les commentaires, trim supprimer tout caractère que vous passez au deuxième argument de la fonction, aussi. Par exemple.

$str = 'appHello Worldapp'; 
$clean_str = trim($str, 'ap'); // as noted by @venimus, use just a single char, 
           // which you want removed 
echo $clean_str; // output: Hello World 
+2

Note pour l'achèvement:' trim() 'accepte également un deuxième paramètre qui contient tous les autres caractères à couper. –

+2

vous devriez utiliser '$ clean_str = trim ($ str, 'ap');' car il ne supprime pas une chaîne mais les caractères listés 'trim ($ str,' pa '); 'fait pareil – venimus

+0

@venimus: Tu as raison! Désolé mon mauvais. :) – Shef

3

Pour les espaces, utilisez seulement $ string = str_replace (» », '', $ string); pour supprimer tous les espaces de chaîne

Pour les espaces blancs, utilisez $ string = preg_replace ('/ \ s + /', '', $ chaîne);