将文本文件内容打印到列中

时间:2016-09-27 14:57:42

标签: php text

我有这个文本文件:

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

但它看起来像这样:

http://imgur.com/4uM6iY7

我希望将此文本文件的内容分为四列-Line,Description,Legacy GL Code和Closing Balance。如果这些列中的任何一列为空,则应保持为空。我只想打印那些以====&gt;

开头的行

您能帮我找到一种方法来打印文本文件,就像我想要的那样吗?

1 个答案:

答案 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);

你可以看到我所做的只是:

  • 检查“行”列中的字符是否为数字
  • 然后我得到所有其他元素
  • 我通过trim
  • 删除不需要的字符(空格,......)来“清理”它们
  • 之后,我检查所有元素是否已归档
  • 我终于展示了它们

我希望这会对你有所帮助,祝你有个美好的一天;)