在10行后创建新页面

时间:2019-02-22 17:44:34

标签: php html

这是我的php代码

<?php
$myFile = "hidata.txt";
$fh = fopen($myFile, 'r');
while(false !== ($theData = fgets($fh))) {
    echo ('<li>' . $theData . '</li>');
}
fclose($fh);
?>

这是我的hidata.txt中的内容

data1
data2
data3

它回显所有这样的行。

<li>data1</li>
<li>data2</li>
<li>data3</li>

我希望我的代码在当前页面超过10行之后创建新的.php页面。

例如,我的.txt文件具有超过10行这样的文本

data1
data2
data3
data4
data5
data6
data7
data8
data9
data10
data11
data12

这是它将在index.php页面中回显的东西。

<li>data1</li>
<li>data2</li>
<li>data3</li>
<li>data4</li>
<li>data5</li>
<li>data6</li>
<li>data7</li>
<li>data8</li>
<li>data9</li>
<li>data10</li>

在10行文本之后,我希望代码自动创建一个新的php文件2.php,而10行或10行以下的行将像这样在2.php中回显。

<li>data11</li>
<li>data12</li>

如果我的.txt文件中的行超过20行,则它将创建3.php;如果30行,则将创建4.php,依此类推。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

<?php
$myFile = "hidata.txt";
$fh = fopen($myFile, 'r');
$counter = 1;
$page = 2;
while(false !== ($theData = fgets($fh))) {
    if ( $counter > 10){
         file_put_contents( $page.".php", '<li>' . $theData . '</li>' . PHP_EOL, FILE_APPEND  );
       if ($counter == 20){
               $counter=10;
               $page++;
       }
    }else{
    echo ('<li>' . $theData . '</li>');
   }
   $counter++;
}
fclose($fh);
?>

因此,如果您执行php thisscript.php > index.php

,则将像以前一样在index.php中插入10的第一次运行

当然可以做得更好,但我留在您的初始代码中..:)

答案 1 :(得分:0)

只需在循环中的某处添加一个增量/检查,以检查当前文件是否有10行。当计数器达到10时,开始一个新文件。

<?php
$myFile = "hidata.txt";
$fh = fopen($myFile, 'r');
$count;
while(false !== ($theData = fgets($fh))) {
    if(count==10)
    {
        //create new file here
    }
    echo ('<li>' . $theData . '</li>');
$count++;
}
fclose($fh);
?>

答案 2 :(得分:0)

您可以每10条数据行创建一个新的php文件:

<?php
    $myFile = "hidata.txt";
    $fh = fopen($myFile, 'r');
    $j = 0;
    while(false !== ($theData = fgets($fh))) {
        $i = 0;
        $f = fopen($j.".php", 'w');
        fwrite($f,  '<?php echo("<!--Header of every file.-->"); echo("');
        do {
            fwrite($f, '<li>' . $theData . '</li>');
            $i++;
        } while ($i < 10 && (false !== ($theData = fgets($fh))));
        $j++;
        fwrite($f,  '"); echo("<!--Footer of every file.-->")?>');
        fclose($f);
    }
    fclose($fh);
?>

您可以进一步包含jQuery函数来自动打开创建的文件:

<script>
  $(document).ready(function(){
    for(var i = 0; i < <?php echo "$j";?>; i++)
        window.open(i+'.php', '_blank');          
  });
</script>