Estoy tratando de reemplazar todos los espacios con guiones y la siguiente no funciona:preg_replace todos los espacios
$id = "aa aa";
echo $id;
preg_replace('/\s+/', '_', $id);
echo $id;
impresiones
aa aaaa aa
Estoy tratando de reemplazar todos los espacios con guiones y la siguiente no funciona:preg_replace todos los espacios
$id = "aa aa";
echo $id;
preg_replace('/\s+/', '_', $id);
echo $id;
impresiones
aa aaaa aa
La función preg_replace
no modifica fy la cadena en el lugar. Devuelve una nueva cadena con el resultado del reemplazo. Debe asignar el resultado de la llamada al $id
variables:
$id = preg_replace('/\s+/', '_', $id);
se ha olvidado de asignar el resultado de preg_replace
en su $id
$id = preg_replace('/\s+/', '_', $id);
Creo str_replace()
podría ser más apropiado en este caso:
$id = "aa aa";
$id = str_replace(' ', '_', $id);
echo $id;
Sin embargo, este código no reproduce lo que OP está intentando hacer. –
@VincentSavard: "reemplaza todos los espacios con guiones bajos" ... Creo que sí :) – Clive
Su oración deja lugar a la interpretación, pero su código no. Su código reemplazará cada espacio por un guión bajo, mientras que aparentemente quiere reemplazar cada grupo de caracteres en espacios en blanco por un guión bajo. –
Necesitamos reemplazar el espacio de la cadena "aa" con '_' (guion bajo). The \ s + se usa para hacer coincidir múltiples espacios. La salida será "aa_aa"
<?php
$id = "aa aa";
$new_id = preg_replace('/\s+/', '_', $id);
echo $new_id;
?>
Tenga en cuenta que si la página está codificado con UTF-8 a continuación, debe agregar el modificador Unicode hasta el final de la expresión regular, por lo que se convierte en preg_replace ('/ \ s +/u ',' _ ', $ id); Si no agrega esto, podría causar caracteres no válidos en su texto codificado en UTF-8. Ver: https://stackoverflow.com/q/43849130/649497 – BruceHill