因此,假设您有一个 php post 脚本,它将您传递给它的任何内容作为新行附加到文本文件中
假设该文件名为 file.txt,如下所示:
11:45 Am
12:49 PM
Went to Lunch
3:25 PM
我想知道,我怎样才能编写一个将信息视为 3 对的 php 脚本。所以在 for 循环中它会显示
line1 | line2 | line3
line4
请注意,第 4 行之后没有任何内容,因此它停止了。
您可以使用(演示)
$chunksOfThree = array_chunk(file('/path/to/file', FILE_IGNORE_NEW_LINES), 3);
foreach ($chunksOfThree as $chunk) {
echo implode(' | ', $chunk), PHP_EOL;
}
这将输出所需的
11:45 Am | 12:49 PM | Went to Lunch
3:25 PM
请参阅手册条目
fgets从文件中读取整行。它比fread 之类的要慢,但可以满足您的需求。
您还可以使用file函数将整个文件读入一个数组。数组中的每个元素对应于文件中的一行。
如果读取的行数不是 3 的倍数,则忽略最后 1 或 2 行。
fgets
如果没有更多数据,则返回 false,因此您可以检查以确定三元组条目之一是否不完整。
while(!feof($fp)) {
$line1 = fgets($fp);
$line2 = fgets($fp);
$line3 = fgets($fp);
if ($line2 === false) {
echo "$line1";
} else if ($line3 == false) {
echo "$line1 | $line2";
} else {
echo "$line1 | $line2 | $line3\n";
}
您可以为此使用此代码
<?php
$filename = "test.txt";
$fp = fopen( $filename, "r" ) or die("Couldn't open $filename");
$i=0;
while ( ! feof( $fp ) ) {
$line = fgets( $fp, 1024 );
if($i==2)
{
print "$line";
$i=0;
print "<br>";
}
else
{
print "$line | ";
$i++;
}
}
?>
Output :
11:45 Am | 12:49 PM | Went to Lunch
3:25 PM |