Eso no tiene sentido.A ver, en el código que te he puesto, faltan algunos '$' delante de 'k'.
Eso está liando al algoritmo, aparte de que tienes bastantes lineas en blanco, cosa que tampoco le ayuda.
Esta función hace lo que quieres. Ejecútala tal cual.
He sustituido la llamada a la función, por un simple bucle.
Cuando la hayas probado, vuelve a meterle la query.
Código PHP:
Ver original<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
// Ponemos el numero de lineas por fichero , en un define, en vez de repetirla en todos lados a pelo.
$k=0;
while(file_exists("miFichero".$k.".txt"))$k++; // Este es el bucle.
// Al salir del bucle, k indica que fichero NO existe.Asi que, el ultimo que existe (si existe) es k-1.
$k--;
// Ahora, si k > 0 , significa que hay más de un fichero.k-1 es el numero de ficheros completos.
$counter=0;
$currentFile=null;
// Puede ser que no exista ninguno, asi que hacemos is_file.
if(is_file("./miFichero".$k.".txt")) {
// Existe alguno, y $k es el ultimo fichero.Se abre.
$lines=file("./miFichero".$k.".txt"); // Se cuentan las lineas que empiezan por '#'.Esas son las lineas que ya hay escritas en el fichero.
foreach($lines as $value)
$counter+=($value[0]=='#'?1:0);
// Por ahora, pensamos que tenemos que escribir en el ultimo fichero
$curFile=$k;
if($counter>=NLINES) // A menos que ese fichero ya tenga NLINES.En ese caso, vamos al siguiente.
$curFile++;
$currentFile=fopen("miFichero".$curFile.".txt","a"); }
// En counter, tenemos el numero de lineas que habia en el ultimo fichero.Le añadimos todas las que hay en los ficheros anteriores.
if($k>1)
$counter+=NLINES*$k;
$text="";
$cabecera="cabecera\n\n";
$pie="Este es mi pie";
// $res es el resultado de mysql_query de tu consulta.
for($k=0;$k<29;$k++)
{
if($counter%NLINES==0)
{
if($currentFile!=null)
{
}
$currentFile=fopen("miFichero".($counter/NLINES
).".txt","w"); fwrite($currentFile, $cabecera); }
fwrite($currentFile, "# ".$k." -- ".$counter."\n\n"); $counter++;
}
if($currentFile)
?>
</body>
</html>