Well, I'm trying to do something that creates numbered files, for example:
001.txt
, 002.txt
, 003.txt
[...] 200.txt
...
That is, if file 001.txt exists, create 002.txt, and so on.
Is it possible?
Well, I'm trying to do something that creates numbered files, for example:
001.txt
, 002.txt
, 003.txt
[...] 200.txt
...
That is, if file 001.txt exists, create 002.txt, and so on.
Is it possible?
After seeing so much negativity in the other 2 comments (including mine) I decided to make a recursive function for this question.
This function can have 2 or 3 different uses and I think one of them is the answer to your question.
1st use - You can check in a range ex: [0..10]
if all files exist, if any of them does not exist, it will be created.
function createFiles($manyfiles = 0, $path, $indice = 0, $count = 0){
$num = 0;
$count++;
for ($i = $indice; $i < $manyfiles; $i++) {
$namePathFile = $path . sprintf('%03d', $num) . ".txt";
// verifica se é a primeira ve que entra no loop
if($i == 0){
// verifica se o primeiro ficheiro existe
if(!file_exists($namePathFile)){
echo "Criar primeiro arquivo se não existe<br>";
$file = fopen($namePathFile, "w");
// vamos fechar o ficheiro para não ficar em memoria
fclose($file);
// chamamos novamente a função mas retirando uma posição de cada
return createFiles($manyfiles - 1, $path, $i, $count - 1);
}
}
$num ++;
//reformata o nome usando a variavel count
$namePathFile = $path . sprintf('%03d', $count) . ".txt";
// verifica se o ficheiro atual existe
if(!file_exists($namePathFile)){
echo "criar arquivo " . $namePathFile . " <br>";
$arquivo = fopen($namePathFile, "w") or die("Impossivel abrir o arquivo!");
fclose($arquivo);
//Cchama a função novamente retirando o valor que ja passou.
return createFiles($manyfiles - $num, $path, $num, $count);
}else{
return createFiles($manyfiles - $num , $path, 0, $count);
}
}
}
2nd use - you have 3 sample files:
001.txt
002.txt
004.txt
This function will add missing file 003.txt
and more number of files (manyFiles) less missing files added ( 003.txt
).
function createFiles($manyfiles = 0, $path, $indice = 0, $count = 0){
$num = 0;
$count++;
for ($i = $indice; $i < $manyfiles; $i++) {
$namePathFile = $path . sprintf('%03d', $num) . ".txt";
// verifica se é a primeira ve que entra no loop
if($i == 0){
// verifica se o primeiro ficheiro existe
if(!file_exists($namePathFile)){
echo "Criar primeiro arquivo se não existe<br>";
$file = fopen($namePathFile, "w");
// vamos fechar o ficheiro para não ficar em memoria
fclose($file);
// chamamos novamente a função mas retirando uma posição de cada
return createFiles($manyfiles - 1, $path, $i, $count - 1);
}
}
$num ++;
//reformata o nome usando a variavel count
$namePathFile = $path . sprintf('%03d', $count) . ".txt";
// verifica se o ficheiro atual existe
if(!file_exists($namePathFile)){
echo "criar arquivo " . $namePathFile . " <br>";
$arquivo = fopen($namePathFile, "w") or die("Impossivel abrir o arquivo!");
fclose($arquivo);
//Cchama a função novamente retirando o valor que ja passou.
return createFiles($manyfiles - $num, $path, $num, $count);
}else{
return createFiles($manyfiles , $path, 0, $count);
}
}
}
3rd Use - you have 3 sample files:
001.txt
002.txt
004.txt
This function will create the file 003.txt
and in the next execution (if all the files in order exist) will add the file 005.txt
function createFiles($manyfiles = 0, $path, $indice = 0, $count = 0){
$num = 0;
$count++;
for ($i = $indice; $i <= $manyfiles; $i++) {
$namePathFile = $path . sprintf('%03d', $num) . ".txt";
// verifica se é a primeira ve que entra no loop
if($i == 0){
// verifica se o primeiro ficheiro existe
if(!file_exists($namePathFile)){
//echo "Criar primeiro arquivo se não existe<br>";
$file = fopen($namePathFile, "w");
// vamos fechar o ficheiro para não ficar em memoria
fclose($file);
return createFiles($manyfiles - 1, $path, $i, $count - 1);
}
}
//reformata o nome usando a variavel count
$namePathFile = $path . sprintf('%03d', $count ) . ".txt";
// verifica se o ficheiro atual existe
if(file_exists($namePathFile)){
$num ++;
echo "criar arquivo " . $namePathFile . " <br>";
$arquivo = fopen($namePathFile, "w") or die("Impossivel abrir o arquivo!");
fclose($arquivo);
//Cchama a função novamente retirando o valor que ja passou.
return createFiles($manyfiles - $num, $path, $num, $count);
}else{
$namePathFile = $path . sprintf('%03d', $count ) . ".txt";
$arquivo = fopen($namePathFile, "w") or die("Impossivel abrir o arquivo!");
fclose($arquivo);
return;
}
}
}
To execute one of these functions, just 2 arguments, for example:
createFiles(10, 'ficheiros/');
I hope I have helped.