PHP file_get_contents和if返回false

时间:2018-03-17 06:59:55

标签: php if-statement file-get-contents

我有一个来自“file_get_contents()”函数的变量。将此变量与if函数一起使用始终为false。

$content = file_get_contents($url);
echo $content; // Echos 1
if ($content == "1") {
    // It doesn't matter if I use 1, '1' or "1"
    echo "True";
}
else {
    echo "False"; // Always echos this one.
}

2 个答案:

答案 0 :(得分:1)

我认为在失败的情况下(http://php.net/manual/en/function.file-get-contents.php

可能会更好地捕捉到错误
$content = file_get_contents($url);
if ($content === false) {
    echo "False"; // or throw exception
}

echo "True";

答案 1 :(得分:1)

您的比较失败,因为$content并不是您认为的。

很可能有<html>个标签或空白字符(例如\n)。

制作内容的hexdump,以确切了解您从file_get_contents获得的内容。

Hex dump function implemented in PHP

示例:

$content = file_get_contents($url);

hex_dump($content);

了解$content内的内容后,您可以相应地对其进行过滤(评论中提到了strip_tagstrim。)