web-dev-qa-db-fra.com

Comment ajouter un espace après chaque caractère d'une chaîne en php?

J'ai une chaîne en php nommée $ mot de passe = " 1bsdf4 ";

Je veux une sortie "1 b s d f 4"

Comment est-ce possible. J'essayais d'imploser la fonction mais je ne pouvais pas faire ..

$password="1bsdf4";    
$formatted = implode(' ',$password);    
echo $formatted;

J'ai essayé ce code:

$str=array("Hello","User");    
$formatted = implode(' ',$str);    
echo $formatted;

Son travail et ajouter de l'espace dans Bonjour et utilisateur! Final Output I got Bonjour utilisateur

Merci, vos réponses seront appréciées .. :)

14
Himanshu Chawla

Vous pouvez utiliser implode, il vous suffit d'utiliser d'abord str_split pour convertir la chaîne en tableau:

$password="1bsdf4";    
$formatted = implode(' ',str_split($password)); 

http://www.php.net/manual/en/function.str-split.php

Désolé, votre commentaire @MarkBaker n'a pas été lu si vous souhaitez convertir votre commentaire en réponse, je peux l'enlever.

32
Pitchinnate

Vous pouvez utiliser chunk_split à cette fin.

$formatted = trim( chunk_split($password, 1, ' ') );

trim est nécessaire ici pour supprimer les espaces après le dernier caractère.

4
kero

Vous pouvez utiliser ce code [DEMO] :

<?php
 $password="1bsdf4";
 echo chunk_split($password, 1, ' ');

chunk_split () est une fonction intégrée PHP permettant de scinder une chaîne en morceaux plus petits.

1
Dejv

Cela a également fonctionné ..

$password="1bsdf4";    
echo $newtext = wordwrap($password, 1, "\n", true);

Sortie: "1 b s d f 4"

1
Himanshu Chawla
    function break_string($string,  $group = 1, $delimeter = ' ', $reverse = true){
            $string_length = strlen($string);
            $new_string = [];
            while($string_length > 0){
                if($reverse) {
                    array_unshift($new_string, substr($string, $group*(-1)));
                }else{
                    array_unshift($new_string, substr($string, $group));
                }
                $string = substr($string, 0, ($string_length - $group));
                $string_length = $string_length - $group;
            }
            $result = '';
            foreach($new_string as $substr){
                $result.= $substr.$delimeter;
            }
            return trim($result, " ");
        }

$password="1bsdf4";
$result1 = break_string($password);
echo $result1;
Output: 1 b s d f 4;
$result2 = break_string($password, 2);
echo $result2;
Output: 1b sd f4.
0
Alexey Azbukin

Celui-ci, ça va

$formatted = preg_replace("/(.)/i", "\${1} ", $formatted);

selon: http://bytes.com/topic/php/answers/882781-add-whitespace-between-letters

0
Henk Jansen