Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建包含某些记录集的文件集_Php - Fatal编程技术网

Php 创建包含某些记录集的文件集

Php 创建包含某些记录集的文件集,php,Php,我正在尝试创建一组文件。有100条记录每个文件将有10条记录,如果超过10条记录,它将创建新文件。并在新文件中存储下一个数据 已创建文件,但所有数据都在一个文件中 <?php function wh_BATCH($Batch_msg,$count) { $log_filename = "BATCH"; if (!file_exists($log_filename)) { // create directory/folder uploads.

我正在尝试创建一组文件。有100条记录每个文件将有10条记录,如果超过10条记录,它将创建新文件。并在新文件中存储下一个数据

已创建文件,但所有数据都在一个文件中

<?php
function wh_BATCH($Batch_msg,$count)
{
    $log_filename = "BATCH";
    if (!file_exists($log_filename)) 
    {
        // create directory/folder uploads.
        mkdir($log_filename, 0777, true);
    }

if($count == 5)
    {
        $log_file_data = $log_filename.'/BATCH_1.txt';
        file_put_contents($log_file_data, $Batch_msg . "\n", FILE_APPEND);       
    }
    else
    {
        $log_file_data = $log_filename.'/BATCH_' . date('d-M-Y') . '.txt';
        file_put_contents($log_file_data, $Batch_msg . "\n", FILE_APPEND);        
    }
}

for($i=0;$i<=100;$i++)
{
    wh_BATCH("hello world ".$i,5);    
}

?>

上面的文件应该只有10个文件,每个文件应该有10条记录 BATCH_1.txt---BATCH_10.txt

for($i=0;$i<=100;$i++)
{
    wh_BATCH("hello world ".$i,5);    
}
这就是为什么总是执行wh_BATCH()函数的这一部分。此部分始终附加到BATCH_1.txt

为了实现你的目标,你应该这样做

首先,将i的值传递给wh_BATCH()函数

for($i=0;$i<=100;$i++)
{
    wh_BATCH("hello world ".$i, $i);    
}
这就是功能

function wh_BATCH($Batch_msg,$count)
{
    $log_filename = "BATCH";
    if (!file_exists($log_filename)) 
    {
        // create directory/folder uploads.
        mkdir($log_filename, 0777, true);
    }

    $number = intVal($count/10);
    $number++;
    $log_file_data = $log_filename.'/BATCH_'.$number.'.txt';
    file_put_contents($log_file_data, $Batch_msg . "\n", FILE_APPEND);
}
在PHP5.6上测试工作代码

<?php
   function wh_BATCH($Batch_msg,$count)
   {
      $log_filename = "BATCH";
      if (!file_exists($log_filename)) 
      {
        // create directory/folder uploads.
        mkdir($log_filename, 0777, true);
      }

      $number = intVal($count/10);
      $number++;

      $log_file_data = $log_filename.'/BATCH_'.$number.'.txt';
      file_put_contents($log_file_data, $Batch_msg . "\n", FILE_APPEND); 
   }

   for($i=1;$i<=100;$i++)
   { 
     wh_BATCH("hello world ".$i, $i);    
   } 

你能建议我如何用一些代码片段来解决这个问题吗?只有一条记录被插入到一个文件中。你能看看我附加的输出文件吗。1个文件中应该有10条记录,文件名为
BATCH_2.txt(Hello world 1到Hello world 10)
下一个文件将有BATCH_2.txt(Hello world 11到Hello world 20)。请建议是,正在我的批处理文件夹中创建BATCH_1.1.txt,它有1条记录,应该有10个记录。创建的文件数量为100个文本文件应该只有10个文本文件每个文件应该有10个记录编辑(浮动)强制转换和(int)强制转换并立即尝试它提供相同的输出生成100个文件,其中每个文件有1个记录它应该有10个记录。对于每个记录,它在10个记录之后创建一个文件,它应该创建一个新文件,新名称为BATCH_n
(其中n=1,2,3,4,5,6,7,8,9,10)
$number = intVal($count/10);
$number++;
$log_file_data = $log_filename.'/BATCH_'.$number.'.txt';
file_put_contents($log_file_data, $Batch_msg . "\n", FILE_APPEND);
function wh_BATCH($Batch_msg,$count)
{
    $log_filename = "BATCH";
    if (!file_exists($log_filename)) 
    {
        // create directory/folder uploads.
        mkdir($log_filename, 0777, true);
    }

    $number = intVal($count/10);
    $number++;
    $log_file_data = $log_filename.'/BATCH_'.$number.'.txt';
    file_put_contents($log_file_data, $Batch_msg . "\n", FILE_APPEND);
}
<?php
   function wh_BATCH($Batch_msg,$count)
   {
      $log_filename = "BATCH";
      if (!file_exists($log_filename)) 
      {
        // create directory/folder uploads.
        mkdir($log_filename, 0777, true);
      }

      $number = intVal($count/10);
      $number++;

      $log_file_data = $log_filename.'/BATCH_'.$number.'.txt';
      file_put_contents($log_file_data, $Batch_msg . "\n", FILE_APPEND); 
   }

   for($i=1;$i<=100;$i++)
   { 
     wh_BATCH("hello world ".$i, $i);    
   }