有个gps串口转以太网的东西,这个以太口以tcp server的方式一直在发送包,格式是:所有语句均以“$”开头,以<CR><LF>结束,<CR>为0x0D<LF>为0x0A。
我现在用php取这些数据,一次取一行的数据,问题是并不是每次都能取到“$”开头的数据,有的时候是从中间开始的,请问如何控制总是以“$”开头?
举例:
正常数据扔出来这样:
$2SGGA,064324.00,3955.11933,N,11618.03183,E,G,07,1.3,50.6,M,0.0,M,,*68
$2SRMC,064324.00,A,3955.11933,N,11618.03183,E,0.0,322.5,310513,,,4*5C
$2SGGA,064325.00,3955.11933,N,11618.03185,E,G,07,1.3,50.5,M,0.0,M,,*6C
$2SRMC,064325.00,A,3955.11933,N,11618.03185,E,0.0,322.5,310513,,,4*5B
$2SGGA,064326.00,3955.11932,N,11618.03187,E,G,07,1.3,50.4,M,0.0,M,,*6D
$2SRMC,064326.00,A,3955.11932,N,11618.03187,E,0.0,322.5,310513,,,4*5B
$2SGGA,064327.00,3955.11932,N,11618.03187,E,G,07,1.3,50.4,M,0.0,M,,*6C
$2SRMC,064327.00,A,3955.11932,N,11618.03187,E,0.0,322.5,310513,,,4*5A
我想按照这种格式一行一行的取,但用php的socket_read取出来,有的时候是这样的:
RMC,144641.00,A,3955.11757,N,11618.03404,E,0.0,0.0,310513,,,4*59 $2S
或者
07,1.3,49.3,M,0.0,M,,*61 $2SRMC,064703.00,A,3955.11939,N,11618.03137,
请问如何总能按照标准格式取?谢谢
|