PHP语句总是返回false

时间:2015-05-28 18:17:56

标签: php imdb

我有一个小脚本女巫用omdbapi从IMDB中获取数据。 我已经设法从网站上获取数据,但是当我尝试检查电影的海报是否有效时,它总是返回false。

            if(!$info['Poster'] == "N/A") {
                $url = $info['Poster'];
                $img = 'images/'.$info["imdbID"].'.jpg';
                file_put_contents($img, file_get_contents($url));
                echo 'Downloaded';
            } else {
                echo '!Downloaded';
                $noCover = true;
            }

$ info ['Poster']包含与此类似的数据: http://ia.media-imdb.com/images/M/MV5BMTM0MDgwNjMyMl5BMl5BanBnXkFtZTcwNTg3NzAzMw@@._V1_SX300.jpg

它刚刚工作,但它以某种方式停止了......

2 个答案:

答案 0 :(得分:4)

您的if语句写错了。 !$info['Poster']表示if $info['Poster'] is not true。如果有值,它将被转换为false,因为PHP的类型juggling会将任何非空字符串转换为true,而!运算符会将其转换为false。 false不等于N/A,因为类型杂耍会将其转换为true(非空字符串始终为true)。 false不等于`true。

您的意思是使用!=,这意味着not equal to

if($info['Poster'] != "N/A") {

答案 1 :(得分:0)

只需将!移出您的状态,它应该按预期工作。你问你的情况是否$ info ['Poster']是假的,并且它不会是假的,因为它会有一个字符串值。因此,您将布尔值与字符串值进行比较,false将始终与“N / A:

不同
        if($info['Poster'] !== "N/A") {
            $url = $info['Poster'];
            $img = 'images/'.$info["imdbID"].'.jpg';
            file_put_contents($img, file_get_contents($url));
            echo 'Downloaded';
        } else {
            echo '!Downloaded';
            $noCover = true;
        }