Cita: $resultado = "row['campo']";
$original= array(" ");
$nuevo = array("-");
$cambiado = str_replace($original, $nuevo, $resultado);
El cambio en los espacios lo veo complicado: podrías hacer simplemente:
$cambiado = str_replace(' ', '-', $resultado);
Cita: RewriteRule ^$cambiado-([^/]+).php trucos-vista.php?id=$1
A mi me parece que es normal que no funcione por ese ^$. Prueba con:
RewriteRule ^/cambiado-(.+).php trucos-vista.php?id=$1