html文件内容在空行中计算为非空

时间:2014-02-13 15:41:20

标签: php arrays

我有一个html文件,ISO-8859-1,我将其内容作为数组处理,我想找到空行(空值),但无论我做什么,值总是计算为非空但是我没有在某些行中看到任何内容。我想也许是因为不同的编码,或者因为它是一个不同的编码和一个数组同时,但我找不到有什么问题。 如果我在notepad ++中更改编码,空行仍然是空的。如果我打开显示所有隐藏的字符,则只有CRLF。由于CRLF ??

,它可能不会评估为空
$content = file($filename);

1. row: <tr ...
2. row:
3. row: <tr> ...

foreach ($content as $key => $value) {
    if (!empty($value)) {
        echo 'not empty!';
    }
}

到处都是“不空洞”!在行nr。 2也(似乎是空的)。 事实上,我甚至无法在这个数组中搜索(使用array_search)。 这里发生了什么? 非常感谢!

2 个答案:

答案 0 :(得分:1)

使用

$content = file($filename, FILE_IGNORE_NEW_LINES); 

所以你没有得到换行符。 或者,如果您只想要非空行,请使用

$content = file($filename, FILE_SKIP_EMPTY_LINES);

答案 1 :(得分:0)

查看isset()的文档:

  

确定变量是否已设置且不为NULL。

您的变量$value存在但是为空字符串而不是null

请尝试使用empty()或仅使用trim(),因为空字符串也会评估为false

foreach ($content as $key => $value) {
    if (trim($value)) {
        echo 'not empty!';
    }
}