PHP, MySQL - CMS, crear página nueva automáticamente a partir de formulario

Hola a todos, soy nuevo en esto del diseño web y tengo un problema importante xD.

Estoy haciendo una administración para mi página web. El objetivo es, a través de un formulario (conectado a la base de datos), insertar un nuevo registro en la base de datos y que sustituya los datos insertados en el diseño de una "plantilla-base" y que se cree una nueva pagina "pagina.php" con el nombre de uno de los datos introducidos, lo que viene a ser un CMS (o una de sus funciones, creo). No sé si el planteamiento de base está mal, solo me queda el código para que se creen las nuevas páginas. Lo que tengo:
1-Creo la base de datos en MYSQL y la tabla, por ejemplo, con estos 3 datos:

-meta_description
-meta_keywords
-Title_url

2-Creo la página de administración que permita insertar la información a la base de datos: "page_add.php". Aquí inserto la tabla-formulario (la típica <table> <tr valign="baseline">
<td nowrap="nowrap" align="right">Title_url:</td>
<td><input type="text" name="Title_url" value="" size="32" /></td>
</tr> </table>

y desde aquí escribo qué irá en meta_description, meta_keywords y Title_url.

4-Creo la plantilla "plantilla.php", donde dispongo toda la información que quiero (tengo includes de menu, cabecera, foot, etc). Las zonas que quiero que sean "escritas" por la base de datos, las conecto a la misma, por ejemplO:

<meta name="Description" content="<?php echo $row_musicabase['meta_description']; ?>">
<meta name="keywords" content="<?php echo $row_musicabase['meta_keywords']; ?>" />
<title><?php echo $row_musicabase['Title_url']; ?></title>

Lo que quiero conseguir es que, rellenando el formulario, se cree una página nueva "Title_url.php", con la información que he introducido tomando de base "plantilla.php". Entiendo que el código debo de introducirlo en "plantilla.php", para que lea la información que acaba de variar con el nuevo registro en la base de datos proporcionado desde "page_add", y se cree, desde "plantilla.php" la nueva página PHP denominado "Title_url.php" y se guarde, por poner un ejemplo en "/paginaweb/musica".


He probado con distintos códigos, algunos como los de $medruta, propuestos en este foro, pero supongo que, o el planteamiento está mal, o tengo que añadir funciones, o no lo aplico correctamente. Necesito conocer el código que debo de insertar al final de "plantilla.php" para crear una nueva página automáticamente cada vez que inserte información en el formulario y "plantilla.php" se "actualice". A ver si alguien me puede echar una mano. De momento comenzaré a investigar en diseño de foros, a ver si encuentro tutoriales y puedo coger algo de sus entrañas para mi proyecto.
Muchas gracias a todos!
PD: espero no estresaros con mis comentarios de novato.
Gracias por la respuesta skaparate, acabo de editar el tema, a fin de que se me entienda mejor (a ver si lo consigo;)). Creo que me has entendido, quiero crear un nuevo archivo que se tenga el nombre de "Title_url.php" pero que tome la estructura de la pagina "plantilla.php". El código que me has dado no me funciona, soy MUY noob en esto, lo he probado a poner al final de "plantilla.php" y de "page_add", pero no funciona. Por lo que he visto, creo que el tema va por fread / fwrite y necesita una variable que sea la carpeta donde se guarda el archivo.
Esto es lo que encontré en otro post de este foro:
<?php
$ruta_archivo="paginaweb/plantilla.php";
$medruta='musica/'."$mednombre"; //(no se qué es esto, por eso pongo música, como la carpeta donde quiero que se guarde el nuevo archivo generado y Smednombre, como Title_url).

$mednombre= 'Title_url';
$medfile=fopen("$ruta_archivo","a");
$medleido=fread($medfile,1000000);
fread($medfile,1000000);
$medreemplazo=str_replace("{ruta}","$medruta", file_get_contents("paginaweb/plantilla.php"));
fwrite($medfile,$medreemplazo);
fclose($medfile);
?>

No se si lo aplico bien, ¿debe ir dentro de las marcas de html? ¿fuera?.
Gracias a todos de nuevo.
Según entiendo, no se puede modificar el contenido de un archivo .php que se esta ejecutando, por ende, debes crear un archivo nuevo con los contenidos de la plantilla, en lugar de ejecutarla.

Sería útil que nos explicaras la estructura de tus archivos (dónde esta la función page_add, por ejemplo) para entender mejor la lógica de lo que buscas (entiendo lo que quieres, pero no la organización de tus scripts).
Joder Skaparate, muchas gracias! Aunque te voy a molestar algo más. No se cómo aplicar el código que me das. Quiero que se genera un archivo con el nombre de la variable 'Title_url' con extensión .php y en la carpeta /musica. Cómo aplico tu código?

// De alguna forma debes conseguir el nombre del contenido que quieres ver y pasarlo a la siguiente función, aunque es algo reiterativo,
// pues bastaría con mostrar el $contenido - echo $contenido:
function crear_archivo( $nombre, $contenido ) {
if( ! empty( $nombre ) ) {
$pos = strpos( $nombre, '/' );
if( $pos != 0 )
$nombre = '/' . $nombre;

$ruta = dirname( __FILE__ ) . $nombre;
file_put_contents( $ruta, $contenido );
include $ruta;
}

return false;
}
?>

Siento no tener los conocimientos necesarios, pero me gustaría entenderlo. No veo el "$contenido = X".
Entiendo que en
$pos = strpos( $nombre, '/' );
sería:
$pos = strpos( $nombre, Title_url' ); // porque lo que hace es buscar?
¿Como aplico este código exactamente a mi página? Si pudieses explicármelo podría aplicarlo al resto de la página web. Muchas gracias de nuevo Skaparate!
He conseguido crear archivos con título 'Title_url' pero sin terminación alguna, y necesito que sean .php. No quiero que el contenido del archivo nuevo sea una variable de la base de datos, quiero que el contenido sea el de "plantilla.php" pero con la información de las variables cambiadas. Yo inserto un registro y me aparece un archivo ("Title_url.php") con el código de "plantilla.php" y sus variables cambiadas:
<meta name="Description" content="<?php echo $row_musicabase['meta_description']; ?>">

Si en el formulario puse como meta_description = blablublibla quedaría así:
---dentro del código de "plantilla.php"-----
<meta name="Description" content="blablublibla">

Bien, he probado con esto:
<?php
function crear_archivo( $nombre, $contenido )
{
if( ! empty( $nombre ) ) {
$pos = strpos( $nombre, '/' ); // Busca la primera aparición del caracter pasado en el segundo parámetro dentro de la cadena del primer parámetro ($nombre), que en este caso es /.

if( $pos !== false )
$nombre = substr( $nombre, ( $pos + 1 ) ); // Corta la cadena para quitar el primer /. Esto es para asegurarse de que no se añada más de un / a la ruta.

$ruta = "musica/$nombre";
file_put_contents( $ruta, $contenido );
include $ruta;
}
return false;
}
$contenido= include("musica_base.php");
crear_archivo( $row_musicabase['Title_url'], $contenido );
echo $contenido;

?>

He abierto un archivo con eso dentro, pero no sirve de nada, porque no está dentro del código <?php > ni la extensión del archivo creado es.php.
Pero bueno, el tema va avanzando! A ver si se te ocurre algo más. Muchas gracias de nuevo
Pero es fácil, basta con agregar la extensión .php al nombre del archivo y las etiquetas php:

crear_archivo( $row_musicabase['title_url'] . '.php', "<?php $contenido ?>" );

Pero te reitero, estás siendo redundante, pues es exactamente lo mismo que mostrar el contenido directamente desde la base de datos :P.