0
シーザー暗号のJavaのgetBytes()関数を見て、私はこの機能をPHPにクローン化する可能性について考えています。PHP。文字列をバイト単位で処理する。
Javaでは関数である:
private static final SHIFT_LENGTH = 0x3;
public static String encode(String str)
{
str = "teststring";
byte[] bytes = str.getBytes("UTF8");
for (int i=0; i < bytes.length; ++i)
{
bytes[i] = bytes[i] + SHIFT_LENGTH;
}
// Base-64 encode
return new BASE64Encoder().encode(bytes);
}
関数は、文字列内の各バイトまでの3を添加した後、ベース64それをコードしなければなりません。私は、次のように、PHPの変動の束を試してみた:
function encode_php($str)
{
$str = utf8_encode("teststring");
$new_str = '';
for ($i = 0; $i < strlen($str); $i++) {
$new_str .= ord($str[$i])+3;
}
return base64_encode($new_str);
}
私は明らかにエンコーディングまたはどのようにPHPで個々のバイトを処理するための面で何かが欠けていますが、私はよく分かりません。 dechex()とbin2hex()を使ってエンコーディングを混乱させてみましたが、一致する結果を得ることはできません。何か案は?
1を意味しない:私は、$ new_str' 'の出力は、ASCII数字の文字列である賭けます。 ;-) – Herbert
ああ、そうです。はい。ありがとうございました! – NChase