2009-06-07 11 views
0

Ich möchte eine C# Zeile PHP konvertieren, aber es funktioniert nicht (das Ergebnis nicht das gleiche ist):konvertieren C# Zeile PHP

C#:

PHP:

Jemand weiß, wie man das macht?

Dank

+1

Wenn Sie die Werte jeden Ausdruck enthalten, anstatt uns zu erraten, zu verlassen, yo Deine Frage wäre besser. – tvanfosson

Antwort

1

Dieser Code sollte das gleiche Ergebnis zurückgeben.

Das einzige Problem, das ich mir vorstellen kann, ist, dass der Typ der Daten in "$ header [$ i]" eine Zeichenfolge und keine Ganzzahl ist. Dies bewirkt, dass PHP den ASCII-Code von $ header analysieren [$ i] anstelle des Wertes es darstellen soll:

Strebtes Ergebnis:

$xorKey = 16909060; 
$data = 1337; 

$data = ((16 * ($xorKey^(~$data & 0xFF))) 
       | (($xorKey^(~$data & 0xFF)) >> 4)) & 0xFF; 

echo $data; // int 60 

Während ein String ergibt sich folgende Verwendung:

$xorKey = 16909060; 
$data = '1337'; // HERE BE DRAGONS 

$data = ((16 * ($xorKey^(~$data & 0xFF))) 
       | (($xorKey^(~$data & 0xFF)) >> 4)) & 0xFF; 

echo $data; // int 112 

um dies zu beheben:

$xorKey = 16909060; 
$data = '1337'; 

$data = intval($data); // Parse this string as an integer. 

$data = ((16 * ($xorKey^(~$data & 0xFF))) 
       | (($xorKey^(~$data & 0xFF)) >> 4)) & 0xFF; 

echo $data; // int 60 
+0

Danke. Ich schrieb es um, nachdem ich hier gefragt hatte und das Problem war weg: D. –