2017-05-03 36 views
0

我正在遍历$ _POST来将每个项目写入文本文件。它正在工作,但尽管使用'strlen'来避免空白行,但我仍然得到一些。谁能告诉我为什么?这里是我的代码:为什么我会变空行

$entries = ""; 
$filename = "test.txt"; 
foreach($_POST as $value) { 
    if(is_array($value)) { 
     foreach($value as $subvalue) { 
      if (strlen($subvalue) > 5) { 
       $entries .= $subvalue . PHP_EOL; 
      } 
     } 
    } 
} 
file_put_contents($filename, $entries); 
+1

请加'var_export'为'$ _POST';和'trim()'在开始和结束时删除空格,如果你需要的话 – vv01f

+2

你是否得到空行或行只包含空格?也许你想在计算'strlen()'之前尝试使用'trim()'? – domsson

+0

另外,如果某个'$ subvalue'在最后有一个换行符,那么您添加一个会导致空行的附加字符。你可能也想检查一下。 – domsson

回答

0

试试下面为您的解决方案代码:

$entries = ""; 
$filename = "test.txt"; 
foreach($_POST as $value) { 
    if(is_array($value)) { 
     foreach($value as $subvalue) { 
      if (strlen(trim($subvalue)) > 5) { 
       $entries .= $subvalue . PHP_EOL; 
      } 
     } 
    } 
} 
file_put_contents($filename, $entries);