El secreto de todo esto parece estar en el uso de las comillas simples (que no evalua nada PHP dentro de comillas simples) y del salto de linea como codigo ASCII (13) ...
Sería:
Código PHP:
<?
$h="localhost";
$p="password";
$u="user";
$d="db";
$v ='<?php'.chr(13);
$v .='$host="'.$h.'";'.chr(13);
$v .='$user="'.$u.'";'.chr(13);
$v .='$pass="'.$p.'";'.chr(13);
$v .='$db="'.$d.'";'.chr(13).chr(13);
$v .='$conex=mysql_connect($host,$user,$pass);'.chr(13);
$v .='mysql_select_db($db,$conex);'.chr(13);
$v .='?>';
$fp=fopen("config.inc.php","w");
fwrite($fp,$v);
fclose($fp);
?>
Date cuenta que donde hay q presentar una $variable ... dicho nombre (codigo PHP de vairiable) está entrecomillado simple '$variable' .. con esto PHP no entra a ese string a evaluarlo e intentar asignarle valor a esa posible variable .. Las variables que necesites usar .. concatenalas como de constumbre ...
El salto de linea (codigo ASCII 13) usado es el equivalente a \n .. si tubieras problemas con el \n y necesitas \r o \n\r .. busca el ascii correspondiente a \r .
Un saludo,