这是我的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
$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
当然它可以做得更好,但我留在你的初始代码.. :)
只需在循环中的某处添加一个增量/检查,检查当前文件是否有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);
?>
您可以为每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>