1

こんにちは、私は現在、マーチャント アカウント システムの統合に取り組んでいます。

サイトの URL に送信される http リクエストの totalbytes を取得する必要があります。私のサイトは PHP で書かれています。

C# では次のように機能します。ただし、言及すべき主なポイントは、PH でこれを行う方法です。これに関する適切なドキュメントが見つからないようです。前もって感謝します

 public void ProcessRequest (HttpContext context) 
{
    context.Response.Buffer = true;

    string response = "";
    string sMethod = "POST";

    //sUrl holds the address to the Verify service, this is a service from AllCharge 
    // that verifies the signature on the notification. This makes sure that the notification
    // was sent by AllCharge.

    //Demo server - use this address during the integaration, remark this line when working
    // with the live server
    string sUrl = "http://demo.allcharge.com/Verify/VerifyNotification.aspx";

    //Live server - use this address when working with the live server, remark this line 
    // during the integration
    //string sUrl = "https://incharge.allcharge.com/Verify/VerifyNotification.aspx";

    Int32 nCount = context.Request.TotalBytes;
    string formParameters = System.Text.Encoding.UTF8.GetString(context.Request.BinaryRead(nCount));

}
4

5 に答える 5

1

私がこれまで思いついた中で最高のものは、次のphp関数です。

function findKb($content){
$count=0;
$order = array("\r\n", "\n", "\r", "chr(13)",  "\t", "\0", "\x0B");
$content = str_replace($order, "12", $content);
for ($index = 0; $index < strlen($content); $index ++){
    $byte = ord($content[$index]);
    if ($byte <= 127) { $count++; }
    else if ($byte >= 194 && $byte <= 223) { $count=$count+2; }
    else if ($byte >= 224 && $byte <= 239) { $count=$count+3; }
    else if ($byte >= 240 && $byte <= 244) { $count=$count+4; }
}
return $count;
}
于 2012-09-13T14:21:24.807 に答える
1

これを試して:

$rqsize = (int) $_SERVER['CONTENT_LENGTH'];

そのようなことはすでにここで尋ねられました。

于 2012-09-13T14:21:36.580 に答える
1
$size = intval($_SERVER['CONTENT_LENGTH']);

$sizeリクエストの長さである必要があります。

于 2012-09-13T14:21:49.233 に答える
1

PHPは解釈言語ですが、それを行うのはかなり難しいので、memory_get_usage関数を使用してみてください。サンプルはこちらhttp://it.php.net/manual/en/function.memory-get-usage.php

于 2012-09-13T14:36:04.300 に答える
0

これを使用するための最良の方法は、次を使用することであることがわかりました。

$size = @file_get_contents('php://input');

助けてくれてありがとう!

于 2012-09-13T15:43:33.030 に答える