0

我们有一个 PHP 响应脚本,它输出如下字符串:

BEGIN;
00000087;
data1A;data1B;data1C;
data2A;data2B;data2C;
data3A;data3B;data3C;
END;

正如您在第 2 行看到的,响应的长度是在响应本身内部发送的。(响应长度稍后用于验证目的。)

目前,我们用前导零填充响应长度,总长度为 8 个字符,以保持计算简单。所以代码看起来像这样:

$sBegin = "BEGIN;\n";
$sData  = "data1A;data1B;data1C;\ndata2A;data2B;data2C;\ndata3A;data3B;data3C;\n";
$sEnd   = "END;";

$iPadLength = 8;
$iResponseLength = strlen($sBegin) + strlen($sData) + strlen($sEnd) + $iPadLength + strlen(";\n");

$sResponse = $sBegin . str_pad($iResponseLength, $iPadLength, "0", STR_PAD_LEFT) . ";\n" . $sData . $sEnd;
echo $sResponse;

这个解决方案对我来说看起来很脏。大多数情况下,我不喜欢填充部分,因为响应数据会增长,并且填充长度会变得太小,这会导致计算错误。

我想知道在不改变响应的基本结构的情况下是否有更好的解决方案。

4

0 回答 0