我有一个小脚本,它使用函数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避免空行,但我不需要它。我只是在寻找一种方法来检测这些空行。
答案 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
供参考,见: