Ich habe eine Java-Funktion und ich brauche eine entsprechende Funktion in PHP. Ich verwende das, um einen MD5-Hash zu parsen, wenn das hilft.Manipulieren Bytes wie Java in PHP
public static byte[] asBin(String paramString)
{
if (paramString.length() < 1)
return null;
byte[] arrayOfByte = new byte[paramString.length()/2];
for (int i = 0; i < paramString.length()/2; i++) {
int j = Integer.parseInt(paramString.substring(i * 2, i * 2 + 1), 16);
int k = Integer.parseInt(paramString.substring(i * 2 + 1, i * 2 + 2), 16);
arrayOfByte[i] = ((byte)(j * 16 + k));
}
return arrayOfByte;
}
Für jetzt habe ich das, aber gibt nicht das gleiche aus.
function asBin($str){
if($str == "") return null;
$bytes = array();
for($i = 0; $i < strlen($str)/2; $i++){
$j = intval(substr($str, $i * 2, $i * 2 + 1), 16);
$k = intval(substr($str, $i * 2 + 1, $i * 2 + 2), 16);
$bytes[$i] = intval($j * 16 + $k);
}
return $bytes;
}
Oder benutzen Sie einfach [ 'HEX2BIN()'] (http://php.net/manual/en/function.hex2bin.php) – Sammitch
Vielleicht haben Sie den Überlauf (in Java-Code), wenn Sie 'int' in' byte' konvertieren (siehe '(Byte) (j * 16 + k) ') –