私はこのAPI関数をAPIのcoldfusion関数に変換する必要があります。私は大したことはありません。私は十分に精通していないphpやcoldfusionのアンパック同等物とちょうどレンガの壁に当たった。PHPがColdfusionでアンパック
function i32hash($str) {
$h = 0;
foreach (unpack('C*', $str) as &$p) { $h = (37 * $h + $p) % 4294967296; }
return ($h - 2147483648);
}
最終結果は(「127.0.0.1:1935/vod/sample.mp4」)i32hashする必要があります= 565817233
が、これは私が取り組んできたが、そのが動作していないコードです。私は「4.294967296E9の値を整数に変換できないため、整数に変換できません」というエラーが戻ってきます。これはモジュラスで起こります。
function i32hash(str) {
var h = 0;
// php unpack equivalent
str = toBinary(toBase64(str));
for(p in str) {
h = (37 * h + p) % 4294967296;
}
return h-2147483648;
}
ありがとうございました。
更新答え、私は、PHPの男ではないよ
function i32hash(str) {
var h = 0;
var strArray = charsetDecode(arguments.str, "us-ascii");
for(var p in strArray) {
h = precisionEvaluate((37 * h + p));
h = h.remainder(javacast("bigdecimal", 4294967296));
}
return precisionEvaluate(h - 2147483648);
}
可能な重複を。 com/questions/32978130/coldfusion-equivalent-to-php-unpack-and-sha1) –
これまでに試したことを投稿できますか?書かれているように、この質問は[トピック外](http://stackoverflow.com/help/on-topic)またはあまりにも幅広く閉鎖される可能性が高いためです。 – Leigh
オリジナルの質問にいくつかのコードを追加しました@Leigh – renhack