2015-02-19 2 views
1

Маленькая проблема с этим PHP код:IF условие не работает, как ожидалось

$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 

У меня есть файлы в этом пути, который определяется выше. Вторая строка в этом файле «плохо» или «хорошо». Я хочу сравнить это с «плохим» и напечатать одно конкретное изображение (которое определяется $ bad и $ good), если оно истинно, а второе, если оно ложно. Где у меня ошибка (и я имею в виду, почему она не работает)? Теперь он печатает одинаковое изображение для каждого «обзора»

var_dump ($ arvio [$ muuttuja]) дает строку вывода (28) «image» < - изображение - это реальное изображение, а не текст.

var_dump ($ arvostelu) дает выходной массив (4) {[0]} => string (4) "test" [1] => string (4) "bad" [2] => string (7) "тестирование" [3] => строка (1) "а"}

строка 1 такая же, как и в случае ($ arvio [$ muuttuja] === "плохо")

+0

Что вы имеете в виду «Где у меня ошибка? '. Если есть какая-либо ошибка, PHP показывает ошибку в браузере или php_error_log. Вам нужно проверить и указать, с какими ошибками вы сталкиваетесь. Кстати, где вы объявили переменные '$ bad' и' $ good'? – bcesars

+0

$ good = ""; $ bad = ""; Определены выше этого кода. Я отредактирую вопрос. И с ошибкой я имею в виду, почему она не работает. – muti

+0

отредактируйте ваше сообщение с выходом var_dump ($ arvio [$ muuttuja]); –

ответ

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, попробуйте остроумие h:

if(trim($arvio[$muuttuja]) == 'bad') 
+0

Спасибо, удивительная помощь :). Нужно ли обрезать почти всегда при сравнении строк? – muti

+0

, см. Http://php.net/manual/en/function.trim.php –

1

Я не уверен, целиком, где проблема, но вы можете попробовать это вместо того, если тогда еще?

$arvio[$muuttuja] = (strtolower( trim($arvio[$muuttuja])))==='bad' ? $bad : $good; 

и, возможно, после проверки того, что файл существует вы должны использовать: -

clearstatcache() 
Смежные вопросы