Bu php işlevini bir api için coldfusion işlevine dönüştürmem gerekiyor ve çok fazla şansım yok. Ben php veya coldfusion unpack eşdeğeri ile aşina değilim ve sadece bir tuğla duvara çarptı. PHP'nin Coldfusion paketini açın
function i32hash($str) {
$h = 0;
foreach (unpack('C*', $str) as &$p) { $h = (37 * $h + $p) % 4294967296; }
return ($h - 2147483648);
}
Sonuç
('127.0.0.1:1935/vod/sample.mp4') i32hash olmalıdır = 565817233bu ben birlikte çalışıyoruz ama onun çalışmıyor kodudur. "4.294967296E9 değerini bir tamsayıya dönüştüremiyorum çünkü bir tamsayıya sığamadığından" bir hata alıyorum. Bu modülde olur.
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;
}
Yardımlarınız için teşekkürler.
Güncelleme cevap, ben, bir PHP adam değilim
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);
}
(http [PHP paketten ve SHA1 için ColdFusion Eşdeğeri] Olası yinelenen: // stackoverflow. com/questions/32978130/coldfusion-eşdeğer-php-unpack-and-sha1) –
Şimdiye kadar denediğiniz şeyi yayınlayabilir misiniz? Yazılı olduğu için, bu sorunun [konu dışı] (http://stackoverflow.com/help/on-topic) veya çok geniş olarak kapalı olması büyük olasılıktır. – Leigh
Özgün sorumu @Leigh – renhack