FILE_SKIP_EMPTY_ELEMENTS不删除空行

时间:2014-07-31 16:12:20

标签: php arrays file

我是PHP文件函数的新手,我正在尝试写一个 以这种方式提交。数据从Instagram实时发布 订阅Feed。该文件似乎总是包含一个空行 通常在前几行收到。

  $x = fopen('activity.log', "r+");
  $myString = file_get_contents('php://input');
  $ALL = $myString."\n";
  file_put_contents('activity.log', $ALL, FILE_APPEND);

所以,我尝试用“跳过”文件中的任何空行 使用时创建数组时的FILE_SKIP_EMPTY_LINES参数 file()函数,但空行(在本例中为第5行) 显示为数组中的空元素。

  $x = fopen('activity.log', "r+");
   //put file contents into an array
    $y = file('activity.log', FILE_SKIP_EMPTY_LINES);
   echo "<pre>";print_r($result);"</pre>";  

   Array
  (
    [0] => [{"changed_aspect": "media", "object": "tag", "object_id": "london", "time": 1406820800, "subscription_id": 9720966, "data": {}}]

    [1] => [{"changed_aspect": "media", "object": "tag", "object_id": "london", "time": 1406820802, "subscription_id": 9720966, "data": {}}]

    [2] => [{"changed_aspect": "media", "object": "tag", "object_id": "london", "time": 1406820803, "subscription_id": 9720966, "data": {}}]

    [3] => [{"changed_aspect": "media", "object": "tag", "object_id": "london", "time": 1406820803, "subscription_id": 9720966, "data": {}}]

    [4] =>
)

我也尝试使用array_filter()删除空元素,但这不起作用,所以我认为空行实际上并不是空的。什么 我可能会在这里失踪。感谢。

1 个答案:

答案 0 :(得分:0)

那里有一些其他的空间,而不仅仅是换行符 一个简单的解决方法是使用preg_grep来过滤它:

  preg_grep("/^\s*$/", file($fn), PREG_GREP_INVERT)

^\s*$检查数组行中是否只有白色\s步调,_INVERT只返回那些不是的行。

您不需要先前的fopen()顺便说一句。