我是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()删除空元素,但这不起作用,所以我认为空行实际上并不是空的。什么 我可能会在这里失踪。感谢。
答案 0 :(得分:0)
那里有一些其他的空间,而不仅仅是换行符
一个简单的解决方法是使用preg_grep
来过滤它:
preg_grep("/^\s*$/", file($fn), PREG_GREP_INVERT)
^\s*$
检查数组行中是否只有白色\s
步调,_INVERT只返回那些不是
您不需要先前的fopen()
顺便说一句。