2011-05-17 18 views

Respuesta

7

la función es correcta, pero hay que asignarlo a una variable.

$filename = str_replace/preg_replace(" ","_", $file); 
+0

'preg_replace()' no funcionará * como es * así. – alex

+0

lo sé. pero copié solo lo que publicaste. pensé que sabría cómo manejarlo :) – user489872

+0

Lo haría, pero no estoy seguro acerca de la OP: D – alex

14

¿Cómo puedo reemplazar los espacios en blanco con subrayados?

La clase de caracteres \s coincidirá con los espacios en blanco. Agregué el cuantificador + para colapsar múltiples espacios en blanco a uno _. Si no quiere eso, elimine el +.

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

Normalmente me acerco desde el otro lado y solo se permiten caracteres de una lista blanca; Reemplazo todo excepto estos caracteres:

$file = preg_replace("/[^-_a-z0-9]+/i", "_", $file); 
+1

Puede reducir eso a '/ [^ - \ w] + /'. [CodePad] (http://codepad.org/R5IJ0GVC). – alex

+0

@alex cierto, pero creo que esto ilustra mejor lo que quiero decir. – jeroen

+0

Tiene razón, si el OP tiene experiencia limitada de expresiones regulares, entonces ver los caracteres explícitamente probablemente los ayudará a asimilarlo. – alex

Cuestiones relacionadas