web-dev-qa-db-fra.com

PHP str_replace remplace les espaces par des traits de soulignement

Y a-t-il une raison pour laquelle je ne vois pas pourquoi cela ne fonctionne pas?

    $string = $someLongUserGeneratedString;
    $replaced = str_replace(' ', '_', $string);
    echo $replaced;

La sortie comprend toujours des espaces ... Toutes les idées seraient géniales

45
Gisheri

Je suggérerais que vous utilisiez ceci car cela vérifiera la présence unique et multiple d'espaces blancs (comme suggéré par Lucas Green).

$journalName = preg_replace('/\s+/', '_', $journalName);

au lieu de:

$journalName = str_replace(' ', '_', $journalName);
125
Laurent Brieu

Essayez ceci à la place:

$journalName = preg_replace('/\s+/', '_', $journalName);

Explication: vous voyez probablement des espaces, pas seulement des espaces simples (il y a une différence).

14
Lucas Green

Pour remplacer un caractère correspondant, utilisez str_replace:

$string = str_replace(' ', '_', $string);

Pour tous les caractères correspondants, utilisez preg_replace:

$string = preg_replace('/\s+/', '_', $string);
4
Ravi Patel

Essayez ceci à la place:

$journalName = str_replace(' ', '_', $journalName);

supprimer les espaces blancs

0
IsaacP