Recuerdo haber hecho esto antes, pero no puedo encontrar el código. Utilizo str_replace para reemplazar un carácter como este: str_replace(':', ' ', $string);
pero quiero reemplazar todos los siguientes caracteres \/:*?"<>|
, sin hacer un str_replace para cada uno.
php
string
str-replace
mismo viejo
fuente
fuente
Respuestas:
str_replace()
puede tomar una matriz, por lo que podría hacer:Alternativamente, puede usar
preg_replace()
:fuente
str_replace()
overpreg_replace()
(o viceversa) en el caso del OP?'~[\\+><-]~'
(observe dónde-
está). El guión (-
) es un metacarácter de expresión regular, por lo que debe escapar o colocarse estratégicamente en la clase de personaje (todo lo que hay dentro[]
). Vea esta respuesta: stackoverflow.com/a/7604888/396458Me gusta esto:
O, en PHP moderno (cualquier cosa desde 5.4 en adelante), el poco menos prolijo:
fuente
Por ejemplo , si desea reemplazar search1 con replace1 y search2 con replace2, el siguiente código funcionará:
fuente
fuente
Si solo está reemplazando caracteres individuales, debe usar
strtr()
fuente
Podría usar preg_replace () . El siguiente ejemplo se puede ejecutar usando la línea de comando php:
Salida:
fuente
Tuve una situación en la que tuve que reemplazar las etiquetas HTML con dos resultados de reemplazo diferentes.
resultado
"Instalador de rociadores y protección contra incendios", "Instalador de vapor", "Instalador de terrazo, baldosas y mármol",
fuente
Supongo que estás cuidando esto:
fuente
En mi caso de uso, parametricé algunos campos en un documento HTML, y una vez que cargo estos campos, los hago coincidir y los reemplazo usando el método str_replace.
fuente