我有这个文本文件:
https://drive.google.com/file/d/0B_1cAszh75fYSjNPZFRPb0trOFE/view?usp=sharing
我可以使用以下代码打印它:
$file = fopen("gl20160630.txt","r");
while(! feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);
但它看起来像这样:
我希望将此文本文件的内容分为四列-Line,Description,Legacy GL Code和Closing Balance。如果这些列中的任何一列为空,则应保持为空。我只想打印那些以====&gt;
开头的行您能帮我找到一种方法来打印文本文件,就像我想要的那样吗?
答案 0 :(得分:0)
实际上非常简单,因为你的文件每列有一个严格的字符数。
您需要做的就是每行上的substr,以“====&gt; {line}”开头,然后您可以按文件中的位置读取每列。
以下是使用您的文件的示例:
$file = fopen("gl20160630.txt","r");
while(! feof($file))
{
$fullLine = fgets($file);
$line = substr($fullLine, 5, 4);
if (is_numeric($line)) {
$liability = trim(substr($fullLine, 10, 30));
$legacy = trim(substr($fullLine, 40, 39));
$balance = trim(substr($fullLine, 79, 15));
if ($liability != null && $legacy != null && $balance != null)
echo $line." ".$liability." ".$legacy." ".$balance."\n";
}
}
fclose($file);
你可以看到我所做的只是:
我希望这会对你有所帮助,祝你有个美好的一天;)