На разных серваках скрипт ведет себя по разному

enver

Guest
На разных серваках скрипт ведет себя по разному

Ничего не понимаю...

Сделал скрипт с циклом for (да собственно не имеет значения, пробовал и while), содержащим 8 проверок... при запуске с одного сервера работает, а с другого грузит как при бесконечном цикле, но процессор не загружен....
Стоит закоментировать одну из проверок... все нормально...

Подскажите почему и как это вылечить
Заранее благодарен...

for ($i=0; $i<count($screen); $i++)
{
if (strstr($screen[$i],"Feels Like"))
$cur_cond[Feels_Like]=$screen[$i+2];

elseif (strstr($screen[$i],"Dewpoint"))
{
$cur_cond[Dewpoint]=$screen[$i+2];
$cur_cond[Dewpoint]=str_replace("</font></td>","",$cur_cond[Dewpoint]);
$cur_cond[Dewpoint]=substr($cur_cond[Dewpoint],strpos($cur_cond[Dewpoint]," "));
}

elseif (strstr($screen[$i],"Barometer"))
$cur_cond[Barometer]=$screen[$i+2];

elseif (strstr($screen[$i],"Wind"))
{
$cur_cond[Wind]=$screen[$i+2];
$cur_cond[Wind]=str_replace("</font></td>","",$cur_cond[Wind]);
}

elseif (strstr($screen[$i],"Humidity"))
$cur_cond[Humidity]=$screen[$i+2];

elseif (strstr($screen[$i],"Sunrise"))
{
$cur_cond[Sunrise]=$screen[$i+2];
$cur_cond[Sunrise]=str_replace("</font></td>","",$cur_cond[Sunrise]);
}

elseif (strstr($screen[$i],"Visibility"))
{
$cur_cond[Visibility]=$screen[$i+2];
$cur_cond[Visibility]=str_replace("</font></td>","",$cur_cond[Visibility]);
}

elseif (strstr($screen[$i],"Sunset"))
{
$cur_cond[Sunset]=$screen[$i+2];
$cur_cond[Sunset]=str_replace("</font></td>","",$cur_cond[Sunset]);
}

}
 

inTox

вёбных дел мастер
А не пробовал {} везде расставить? Может это влияет?
а вообще-то тут, по моему, switch больше подходит для твоей ситуевины...
 

enver

Guest
что значит везде.... синтаксических ошибок нет.... самое обидное что на другом серваке это работает.... я думаю может это настроики сервера или пхп
 

inTox

вёбных дел мастер
elseif (strstr($screen[$i],"Humidity"))
$cur_cond[Humidity]=$screen[$i+2];

elseif (strstr($screen[$i],"Sunrise"))
{
$cur_cond[Sunrise]=$screen[$i+2];
$cur_cond[Sunrise]=str_replace("</font></td>","",$cur_cond[Sunrise]);
}

Оно может и грамотно, но ты все равно попробуй, и организуй более корректную проверку условия с помощью Switch
 

enver

Guest
че то я не додую как тут применить switch...
там же идет проверка на вхождение в строку, а не равенство строк...
 

inTox

вёбных дел мастер
А у тебя в одной строке могут быть и Sunrise и Humidity?
 

enver

Guest
Спасибо огромное за совет, но че то код какой то слишком завернутый получается.... Я решил эту проблему по другому... Я использовал не ассоциативный массив, а численно индексированный... и все нормально
 

enver

Guest
.... и все же если кто то знает почему так работает ассоциативный массив, не морозьтесь... буду очень благодарен за информацию
 
Сверху