/**
*
* @param int $lastnum
* @param ArrayObject $arrry
* @return number
*/
function get_Result(int $lastnum, ArrayObject &$array)
{
$isDebug = FALSE; /* TRUE-debug FALSE-not debug */
/* 变量定义 */
$sBuf = '';
$sSendBuf = ''; /* 上送报文 */
$sTrxCode = ''; /* 交易码 */
$sType = ''; /* 渠道类型 */
$sSeqNo = ''; /* 流水号 */
$sDate = ''; /* 日期 */
$sTime = ''; /* 时间 */
/* body */
$sBeginNo = ''; /* 开始期数 */
$sEndNo = ''; /* 结束期数 */
/* 初始化 */
date_default_timezone_set ('PRC'); // 或修改php.ini中的;date.timezone = 为date.timezone = "Asia/Shanghai"
$sTrxCode = 'SSQ1001';
$sType = 'PHP';
$sDate = date ('Ymd');
$sTime = date ('His');
$sSeqNo = $sType . $sDate . $sTime;
if ($isDebug)
{
printf ("sBuf[%s]\n", $sTrxCode);
printf ("sType[%s]\n", $sType);
printf ("sDate[%s]\n", $sDate);
printf ("sTime[%s]\n", $sTime);
printf ("sSeqNo[%s]\n", $sSeqNo);
}
/* 组织报文 */
$sBuf = sprintf ('%8s%6s%20s%8s%6s%5d%7s%7s', $sTrxCode, $sType, $sSeqNo, $sDate, $sTime, $lastnum, $sBeginNo, $sEndNo);
$sSendBuf = sprintf ('%06d%s', strlen ($sBuf), $sBuf);
if ($isDebug)
{
printf ("sBuf[%s]\n", $sBuf);
printf ("sSendBuf[%s]\n", $sSendBuf);
}
/* 创建socket */
$socket = socket_create (AF_INET, SOCK_STREAM, 0);
// socket_connect($socket, "127.0.0.1", 31001);
/* 连接服务端 */
socket_connect ($socket, "192.168.121.140", 31001);
/* 发送报文 */
socket_write ($socket, $sSendBuf, strlen ($sSendBuf));
/* 接收报文长度 */
$sRecvLen = socket_read ($socket, 6);
if ($sRecvLen == NULL || strlen ($sRecvLen) < 6)
{
printf ("recvlen error[%d]", strlen ($sRecvLen));
return -1;
}
$iRecvLen = (int)$sRecvLen;
if ($isDebug)
{
printf ("iRecvLen[%d],sRecvLen[%s]\n", $iRecvLen, $sRecvLen);
}
/* 接收报文内容 */
$iReadLen = 0; /* 已读字节长度 */
$sRecvBuf = '';
while ($iReadLen < $iRecvLen)
{
$sBuf = '';
$sBuf = socket_read ($socket, 2000); /* 每次读取2000字节 */
if ($isDebug)
{
printf ("sBuf[%6d][%s]\n", strlen ($sBuf), $sBuf);
}
$iReadLen += strlen ($sBuf);
$sRecvBuf .= $sBuf;
}
if (strlen ($sRecvBuf) != $iRecvLen)
{
printf ("sRecvBuf[%d] iRecvLen[%d]", strlen ($sRecvBuf), $iRecvLen);
return -3;
}
$sRes = substr ($sRecvBuf, 48);
if ($sRes == NULL)
{
printf ("substr error\n");
return -5;
}
if ($isDebug)
{
// printf ("\nsRes[%6d][%s]\n", strlen($sRes), $sRes);
printf ("sRes[>%s<]\n", $sRes);
}
/* 解析json结构体 */
$JonRes = json_decode ($sRes, true);
// $JonRes = json_decode ($sRes);/* true 返回array,默认或false返回object */
// var_dump($jsonres);
if ($JonRes == NULL)
{
printf ("json_decode error");
return -4;
}
if ($isDebug)
{
printf ("lottery_no count[%d]\n", count ($JonRes ['result'] ['reslist']));
}
// var_dump($array);
$array = $JonRes ['result'] ['reslist'];
// var_dump($array);
// printf("lottery_no[%s]\n", $jsonres['result']['reslist'][0]['lottery_no']);
return 0;
}