Je me souviens avoir fait cela avant, mais je ne trouve pas le code. J'utilise str_replace pour remplacer un caractère comme ceci: str_replace(':', ' ', $string);
mais je veux remplacer tous les caractères suivants \/:*?"<>|
, sans faire de str_replace pour chacun.
php
string
str-replace
même ancien
la source
la source
Réponses:
str_replace()
peut prendre un tableau, vous pouvez donc faire:Vous pouvez également utiliser
preg_replace()
:la source
str_replace()
pluspreg_replace()
(ou vice-versa) dans le cas du PO?'~[\\+><-]~'
(notez où se-
trouve le). Le tiret (-
) est un métacaractère regex, il doit donc s'échapper ou être stratégiquement placé dans la classe de personnage (tout ce qu'il contient[]
). Voir cette réponse: stackoverflow.com/a/7604888/396458Comme ça:
Ou, en PHP moderne (à partir de la version 5.4), le moins verbeux:
la source
Par exemple , si vous souhaitez remplacer search1 par replace1 et search2 par replace2, le code suivant fonctionnera:
la source
la source
Si vous ne remplacez que des caractères uniques, vous devez utiliser
strtr()
la source
Vous pouvez utiliser preg_replace () . L'exemple suivant peut être exécuté en utilisant la ligne de commande php:
Production:
la source
J'ai eu une situation dans laquelle j'ai dû remplacer les balises HTML par deux résultats de remplacement différents.
résultat
"Installateur de gicleurs et de protection incendie", "Steamfitter", "Terrazzo, Tile and Marble Setter",
la source
Je suppose que vous vous occupez de ceci:
la source
Dans mon cas d'utilisation, j'ai paramétré certains champs dans un document HTML, et une fois que j'ai chargé ces champs, je les associe et les remplace à l'aide de la méthode str_replace.
la source