dmw писал(а):Так вроде нашел в чем дело с облаком, эти уроды из PHP заставляют быть все более внимательным с каждой своей новой версией.
Теперь нельзя присвоить переменной пустую строку и работать с ней как с массивом.Те у кого не работает облако, в частности у кого версия PHP 7.1 и более, попробуйте у себя изменить в ./modules/dev_broadlink/broadlink.class.php в 618 строчке:СпойлерПоказатьТ.е. начиная с версии 7.1 эта функция вернет строку:А вот так уже возвращается массив как и положено:Код: Выделить всё
function str2hex_array($str){ $str_arr = str_split(strToUpper($str), 2); $str_hex = ""; for ($i=0; $i < count($str_arr); $i++){ $ord1 = ord($str_arr[$i][0])-48; $ord2 = ord($str_arr[$i][1])-48; if ($ord1 > 16) $ord1 = $ord1 - 7; if ($ord2 > 16) $ord2 = $ord2 - 7; $str_hex[$i] = $ord1 * 16 + $ord2; } return $str_hex; }
А вот тут даже предупредили об этом, но кто же на такие мелочи обращает внимание?:Код: Выделить всё
function str2hex_array($str){ $str_arr = str_split(strToUpper($str), 2); $str_hex = array(); for ($i=0; $i < count($str_arr); $i++){ $ord1 = ord($str_arr[$i][0])-48; $ord2 = ord($str_arr[$i][1])-48; if ($ord1 > 16) $ord1 = $ord1 - 7; if ($ord2 > 16) $ord2 = $ord2 - 7; $str_hex[$i] = $ord1 * 16 + $ord2; } return $str_hex; }
Замечание: Начиная с PHP 7.1.0, используя в оператор "пустой индекс" на строке, приведет к фатальной ошибке. Ранее, в этом случае, строка молча преобразовывалась в массив.на:Код: Выделить всё
$str_hex='';
Код: Выделить всё
$str_hex = array();
Большое спасибо. все получилось в облако вошел.