$cmd='C:\python34\python.exe C:\philips\pylips.py --command volume';
exec($cmd,$result);
say($result);
$json=substr($result,strpos($result,"{"),strlen($result)-strpos($result,"{"))
say($json); //Вот тут у тебя должно быть только {\"muted\":false,\"current\":5,\"min\":0,\"max\":60} если пропадает например первая скобочка { то поиграйся $json=substr($result,strpos($result,"{")-1,strlen($result)-strpos($result,"{")+1);
$json=str_replace("\","",$json); //тут у тебя должны убраться \ т.е. остаться вот так {"muted":false,"current":5,"min":0,"max":60}
say($json);
Ошибка где-то, сверху страницы мажордомо появляется строка
Warning: strpos() expects parameter 1 to be string, array given in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(151) : eval()'d code on line 10 Warning: strlen() expects parameter 1 to be string, array given in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(151) : eval()'d code on line 10
$cmd='C:\python34\python.exe C:\philips\pylips.py --command volume';
exec($cmd,$result);
say($result);
$json=substr($result,strpos($result,"{"),count($result)-strpos($result,"{"))
say($json); //Вот тут у тебя должно быть только {\"muted\":false,\"current\":5,\"min\":0,\"max\":60} если пропадает например первая скобочка { то поиграйся $json=substr($result,strpos($result,"{")-1,strlen($result)-strpos($result,"{")+1);
$json=str_replace("\","",$json); //тут у тебя должны убраться \ т.е. остаться вот так {"muted":false,"current":5,"min":0,"max":60}
say($json);
$cmd='C:\python34\python.exe C:\philips\pylips.py --command volume';
exec($cmd,$result);
say($result);
$json=substr($result,strpos($result,"{"),count($result)-strpos($result,"{"))
say($json); //Вот тут у тебя должно быть только {\"muted\":false,\"current\":5,\"min\":0,\"max\":60} если пропадает например первая скобочка { то поиграйся $json=substr($result,strpos($result,"{")-1,strlen($result)-strpos($result,"{")+1);
$json=str_replace("\","",$json); //тут у тебя должны убраться \ т.е. остаться вот так {"muted":false,"current":5,"min":0,"max":60}
say($json);
$cmd='C:\python34\python.exe C:\philips\pylips.py --command volume';
exec($cmd,$result);
say($result);
$json=substr($result,strpos($result,"{"),count($result)-strpos($result,"{"))
say($json); //Вот тут у тебя должно быть только {\"muted\":false,\"current\":5,\"min\":0,\"max\":60} если пропадает например первая скобочка { то поиграйся $json=substr($result,strpos($result,"{")-1,strlen($result)-strpos($result,"{")+1);
$json=str_replace("\","",$json); //тут у тебя должны убраться \ т.е. остаться вот так {"muted":false,"current":5,"min":0,"max":60}
say($json);
Такая же ошибка
[/quote]
А, я забыл ещё strpos поменять, а так?
$cmd='C:\python34\python.exe C:\philips\pylips.py --command volume';
exec($cmd,$result);
say($result);
say(count($result)); //Выведем длинну массива $result для дебага
say(array_search("{",$result)); //Выведем позицию первого вхождения { в массив $result для дебага
$json=substr($result,array_search("{",$result),count($result)-array_search("{",$result))
say($json); //Вот тут у тебя должно быть только {\"muted\":false,\"current\":5,\"min\":0,\"max\":60} если пропадает например первая скобочка { то поиграйся $json=substr($result,strpos($result,"{")-1,strlen($result)-strpos($result,"{")+1);
$json=str_replace("\","",$json); //тут у тебя должны убраться \ т.е. остаться вот так {"muted":false,"current":5,"min":0,"max":60}
say($json);
$cmd='C:\python34\python.exe C:\philips\pylips.py --command volume';
exec($cmd,$result);
say($result);
say(count($result)); //Выведем длинну массива $result для дебага
say(array_search("{",$result)); //Выведем позицию первого вхождения { в массив $result для дебага
$json=substr($result,array_search("{",$result),count($result)-array_search("{",$result))
say($json); //Вот тут у тебя должно быть только {\"muted\":false,\"current\":5,\"min\":0,\"max\":60} если пропадает например первая скобочка { то поиграйся $json=substr($result,strpos($result,"{")-1,strlen($result)-strpos($result,"{")+1);
$json=str_replace("\","",$json); //тут у тебя должны убраться \ т.е. остаться вот так {"muted":false,"current":5,"min":0,"max":60}
say($json);
say(count($result)); - ответ - 4
say(array_search("{",$result)); - ответ -
$json=substr($result,array_search("{",$result),count($result)-array_search("{",$result)) на это ошибка - Warning: substr() expects parameter 1 to be string, array given in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(151) : eval()'d code on line 12
$cmd='C:\python34\python.exe C:\philips\pylips.py --command volume';
exec($cmd,$result);
say($result);
say(count($result)); //Выведем длинну массива $result для дебага
say(array_search("{",$result)); //Выведем позицию первого вхождения { в массив $result для дебага
$json=substr($result,array_search("{",$result),count($result)-array_search("{",$result))
say($json); //Вот тут у тебя должно быть только {\"muted\":false,\"current\":5,\"min\":0,\"max\":60} если пропадает например первая скобочка { то поиграйся $json=substr($result,strpos($result,"{")-1,strlen($result)-strpos($result,"{")+1);
$json=str_replace("\","",$json); //тут у тебя должны убраться \ т.е. остаться вот так {"muted":false,"current":5,"min":0,"max":60}
say($json);
say(count($result)); - ответ - 4
say(array_search("{",$result)); - ответ -
$json=substr($result,array_search("{",$result),count($result)-array_search("{",$result)) на это ошибка - Warning: substr() expects parameter 1 to be string, array given in C:\_majordomo\htdocs\modules\scripts\scripts.class.php(151) : eval()'d code on line 12
say(count($result)); - ответ - 4 -- оочень интересно.
А проверь что выдаст на say($result[1]);
Если ничего интересного не выдаст, то наверное на этом мои полномочия всё, с учетом что я пхп-то не знаю особо, дальше дебажить сложна
freesh писал(а): Пт дек 06, 2019 11:12 am
Если вида {"param1": 1432, "param2": 3123} то это json его можно разобрать на переменные. т.е.
$json = json_decode($result, true);
А потом обращаться $json["param1"] - тут будет переменная полученная
Полезно, имхо, для запроса статуса т.е. после этих комманд - обрабатываешь ответ получая какая щас громкость/канал
powerstate - Returns current power state of the TV ('On' or 'Off')
volume - Returns current volume and mute status
current_channel - Returns current channel (if in TV mode)
current_app - Returns current app (Android TVs only)
Попробовал вернуть значение громкости, что-то не получилось, использовал следующий код
Ага, интересный вариант
ну тогда попробуй вывести
say($result[2]);
say($result[3]);
say($result[4]);
Посмотрим в каком месте данные. Но ещё попробуй file_get_contents как я выше писал, это проще и без pylips