del manual de php: str_replace()
Esta función sustituye todas las apariciones de la
cadena_buscada en la cadena
cadena_original por la
cadena_sustituta dada.
Si no precisa reglas especiales de sustitución (como por ejemplo expresiones regulares), deberá usar siempre esta función en lugar de ereg_replace() o preg_replace(). osea donde estas usando un ER no vas apoder cambiarla por esta funcion
ahora lo que si te puedo recomendar es por ejemplo en
return $content = dm_download($array[1]);
estas asignando un valor a una variable para retornarla, osea esto no tiene sentido simplemente con que pongas
return dm_download($array[1]);
funciona igual y va a ir un pelin mas rapido pq no tiene q asignar la variable
saludos