这是我的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,依此类推。
我该怎么做?
答案 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
当然可以做得更好,但我留在您的初始代码中..:)
答案 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>