检测文件中的空行

时间:2017-08-07 17:24:33

标签: php file

我有一个小脚本,它使用函数file()将整个文件读入数组。

$arr = file('file.txt');

file.txt的结构如下:

john
david

james

因此,如果我调试数组,则返回:

array(4) {
  [0]=>
  string(6) "john
"
  [1]=>
  string(7) "david
"
  [2]=>
  string(2) "
"
  [3]=>
  &string(5) "james"
}

当我在foreach循环中分析数组的每个值时,我正试图找到一种检测空行的方法:

foreach ($arr as $value) {

我尝试使用空函数但没有尝试..我也尝试将值与PHP_EOL\n进行比较,也没有。

我知道我可以通过FILE_IGNORE_NEW_LINES避免空行,但我不需要它。我只是在寻找一种方法来检测这些空行。

3 个答案:

答案 0 :(得分:4)

您不应直接使用file,否则可能会导致内存问题。而不是试试这个。

<?php
$file = fopen("test.txt","r");

while(! feof($file))
{
   // Trim will remove any whitespace prepended/appended
   // Empty line will now result in empty string
   $line = trim(fgets($file));
}

fclose($file);

答案 1 :(得分:0)

您可以使用trim()来测试empty() $值,如下所示:

if(empty(trim($value)) {
  //  $value is empty
}

如果不能正常使用preg_match()进行测试,请执行以下操作:

foreach ($arr as $value) {
   if(preg_match("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", $value)) {
      // $value is empty
   }
}

答案 2 :(得分:0)

使用ElseIf rCell.Value = "Blueprint" Then aCell = Range("DR") If aCell.Value = "Yes" Then aCell = Range("ER") If aCell.Value = "Yes" Then PHASEREVIEWCHECKER = True End If ElseIf aCell.Value = "No" Or aCell.Value = "N/A" Or aCell.Value = "Unknown" Then PHASEREVIEWCHECKER = False End If ElseIf aCell.Value = "No" Or aCell.Value = "N/A" Or aCell.Value = "Unknown" Then PHASEREVIEWCHECKER = False End If trim()

continue

供参考,见: