我有一个小脚本女巫用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
它刚刚工作,但它以某种方式停止了......
答案 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;
}