这个PHP代码的问题很小:
$good = "<img src=./images/good.gif>";
$bad = "<img src=./images/bad.gif>";
while ($muuttuja <= $filecount) {
$muuttuja = $muuttuja + 1;
$arvostelutiedosto = "./moviefiles/$movie/review" . $muuttuja . ".txt";
if (file_exists($arvostelutiedosto)) {
$arvostelu = file($arvostelutiedosto);
list($teksti[$muuttuja], $arvio[$muuttuja], $tekija[$muuttuja], $tyopaikka[$muuttuja]) = $arvostelu;
}
if ($arvio[$muuttuja] === "bad") {
$arvio[$muuttuja] = $bad;
} else {
$arvio[$muuttuja] = $good;
}
}
<?= $arvio[1] ?>
<?= $arvio[2] ?>
etc
我在该路径中有文件,这是上面确定的。该文件的第二行是&#34;坏&#34;或&#34;好&#34;。我想把它与&#34;坏&#34;进行比较。如果是真的则打印一个特定图像(由$ bad和$ good确定),如果为false则打印第二个特定图像。我在哪里有错误(并且我的意思是它为什么不起作用)?现在它将相同的图像打印到每个&#34;评论&#34;
var_dump($ arvio [$ muuttuja])给出输出字符串(28)&#34;图像&#34; &lt; - 图像是真实图像,而不是文本。
var_dump($ arvostelu)给出输出数组(4){[0]} =&gt; string(4)&#34; test&#34; [1] =&GT; string(4)&#34; bad&#34; [2] =&GT;字符串(7)&#34;测试&#34; [3] =&GT; string(1)&#34; a&#34;}
字符串1与if中的相同($ arvio [$ muuttuja] ===&#34; bad&#34;)
答案 0 :(得分:1)
我不确定问题究竟在哪里,但你可以试试这个而不是if if else?
$arvio[$muuttuja] = ( strtolower( trim( $arvio[$muuttuja] ) ) )==='bad' ? $bad : $good;
也许在检查文件存在之后你应该使用: -
clearstatcache()
答案 1 :(得分:0)
你说:
var_dump($arvostelu) gives output array(4) {[0]}=> string(4) "test" [1]=> string(4) "bad" [2]=> string(7) "testing" [3]=> string(1) "a"}
string 1 is same as in if ($arvio[$muuttuja] === "bad")
但不是真的,请看:
[1]=> string(4) "bad"
坏有3个字符而不是4,请尝试:
if(trim($arvio[$muuttuja]) == 'bad')