我正在逐行读取文本文件,每行都有逗号分隔值。示例
Name,Phone,URL,notavailable
读数很好,脚本正确返回行。最后一个值有“可用”或“不可用”。
我正在爆炸像这样的行
$sections = explode(",", $line);
然后返回
Array
(
[0] => Name
[1] => Phone
[2] => URL
[3] => notavailable
)
我可以使用
获取值$sections[0], $sections[1] etc.
他们表现得很好。但是当我尝试比较最后一个值时会出现问题。
$check = $sections[3];
if($check=="notavailable")
{Do something }
else {Do something else}
但是if语句总是返回false。我无法理解这一点。试了很多次。有人可以在我的脚本中指出错误,这将非常有用。
提前致谢。
答案 0 :(得分:3)
你需要做一些调试。扔出像
这样的行$check = $sections[3];
echo "check = '$check'"; // Debug print
如果用这样的引号打印出来,你可能会看到有前导/尾随空格。如果是这种情况,只需拨打trim()
就可以了解它。
答案 1 :(得分:1)
$ a == $ b如果在类型杂耍后$ a等于$ b,则等于TRUE。 $ a === $ b如果$ a等于$ b,则相同为TRUE,且它们属于同一类型。
当你阅读文件时,你也会读取空格,所以你需要修剪它们。
所以你应该使用:
if(trim($section[3]) === "notavailable"){
//Do something
} else {
//Do something else
}
答案 2 :(得分:0)
尝试使用
if(preg_match_all('/notavailable/i',$section[3]))
{
// Not Available
}
else
{
// Available
}