摘要:
本函数将字符串中所有字母按照 ASCII 规则循环左移指定位数。非字母字符保持不变。
函数实现:
function f($str, $n) {
$encrypted = "";
for ($i = 0; $i < strlen($str); $i++) {
$char = $str[$i];
if (ctype_alpha($char)) {
$ascii = ord($char);
$offset = $n % 26;
$encrypted .= chr(($ascii - $offset) % 123);
} else {
$encrypted .= $char;
}
}
return $encrypted;
}测试用例:
$str = "1A2b3Y4z"; $n = 3; echo f($str, $n); // 输出:1X2y3V4w
总结:
本函数通过遍历字符串、判断字符类型并利用 ASCII 规则进行偏移计算,实现字符串字母循环左移加密。非字母字符不被加密,保持原样输出。