gpt4 book ai didi

php - 帮助将 C++ 移植到 PHP 代码

转载 作者:行者123 更新时间:2023-11-28 08:22:35 24 4
gpt4 key购买 nike

如果可能的话,我需要将此函数移植到 C++:

static unsigned char bux_code[3] = {0xFC, 0xCF, 0xAB};

void bux_convert(char* buf, int size)
{
int n = 0;
// ----
for (n=0;n<size;n++)
{
buf[n]^=bux_code[n%3];
}
}

我做了什么:

$bux_code = array("\xFC", "\xCF", "\xAB");

function bux_convert($string)
{
$size = strlen($string);

for ($n = 0; $n < $size; $n++) {
$string[$n] ^= $bux_code[$n % 3];
}

return $string;
}

var_dump ( bux_convert("£Ì•½Ï¼«ü") );

但我得到了这个错误:不能对重载对象或字符串使用赋值运算符

最佳答案

在 PHP 中,您不能总是解决字符串的偏移量,例如 $mystring[5]$mystring[$k],然后将结果字符视为各方面的数值。有一种方法可以绕过它:在 bux_convert() 的开头使用 str_split() 将字符串转换为数组,然后将其转换回字符串最后,使用 implode()

此外,$bux_code 是一个全局变量,在函数内部是不可见的。将它移到函数内部或将其声明为全局变量。

function bux_convert($string)
{
$bux_code = array(0xFC, 0xCF, 0xAB);

$size = strlen($string);
$string = array_map('ord', str_split($string));

for ($n = 0; $n < $size; $n++) {
$string[$n] ^= $bux_code[$n % 3];
}

return implode('', array_map('chr', $string));
}

var_dump ( bux_convert("£Ì•½Ï¼«ü") );

关于php - 帮助将 C++ 移植到 PHP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com