10行后创建新页面

问题描述 投票:0回答:3

这是我的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,依此类推。

我怎样才能做到这一点?

php html
3个回答
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

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


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);
?>

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>
© www.soinside.com 2019 - 2024. All rights reserved.