Сделал опрос одной железяки по tcp\ip: Код (Text): <?php $service_port = "7108"; $address = "192.168.10.150"; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $result = socket_connect($socket, $address, $service_port); $out = socket_read($socket, 240); echo $out; socket_close($socket); ?> Все работает, но информация поступает не всегда в нужной последовательности, если скрипт запустить пару раз, то все встает на свои места. Вот так бывает, но со сдвигом: 12 C0U07=2,12 C0U09=2,12 C0U12=2,12 C0U13=2,12 C0U14=2,11 C0U16=2,12 C0U17=2,11 C0U19=2,12 St=00on Cls=12 Uakb=25,7 MedU=2,11 C0U01=2,12 C0U04=2,12 C0U05=2,12 C0U06=2, Вот так правильно, если пару раз перезапустить: St=00on Cls=12 Uakb=25,7 MedU=2,11 C0U01=2,12 C0U04=2,12 C0U05=2,12 C0U06=2,12 C0U07=2,12 C0U09=2,12 C0U12=2,12 C0U13=2,12 C0U14=2,11 C0U16=2,12 C0U17=2,11 C0U19=2,12 Как сделать проверку и перезапустить чтение? Вижу пока, как вариант, проверять наличие в начале строки символов "St=".
Сделал так, почистил через "trim" и по условию "goto" отправляю на повторное чтение как в "бэйсике" получаю что нужно. No No No Ok St=00on Cls=12 Uakb=25,6 MedU=2,11 C0U01=2,11 C0U04=2,11 C0U05=2,11 C0U06=2,11 C0U07=2,11 C0U09=2,11 C0U12=2,11 C0U13=2,11 C0U14=2,10 C0U16=2,11 C0U17=2,10 C0U19=2,11 Вопрос, как почистить все строку?
Спасибо помогло. NoNoOkSt=00on,Cls=12,Uakb=25.4,MedU=2.09,C0U01=2.10,C0U04=2.10,C0U05=2.09,C0U06=2.11,C0U07=2.10,C0U09=2.10,C0U12=2.10,C0U13=2.10,C0U14=2.09,C0U16=2.09,C0U17=2.09,C0U19=2.10
OkSt=80on,Cls=12,Uakb=27.2,MedU=2.24,C0U01=2.26n,C0U04=2.28n,C0U05=2.25n,C0U06=2.21,C0U07=2.21,C0U09=2.20,C0U12=2.21,C0U13=2.26n,C0U14=2.27n,C0U16=2.27n,C0U17=2.23,C0U19=2.27n Как дополнительно можно на каждую переменную C0U01 создать дополнительно C0U01n и присвоить 1, если есть признак "n" или 0 если нет признака "n".