【发布时间】:2017-10-11 11:02:28
【问题描述】:
我正在尝试在 PHP 中编写一个函数,它可以根据给定的偏移量将字符串转换为编码的字符串。
例如:
如果偏移量是2,输入是c,那么输出是e
同样,如果偏移量是5,输入是X,那么输出是c
function encode($char,$offset)
{
$char_list = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$_offset = strpos($char_list,$char) + $offset;
if($offset > strlen($char_list )){
$_offset = _$offset - $offset;
}
return $char_list[$_offset];
}
要求的结果:
encode("a",0) // must returns a
encode("c",5) // must returns h
encode("X",9) // must returns g
【问题讨论】:
-
你的问题是......?
-
@Twinfriends,修正算法
-
PHP Caesar cipher的可能重复
-
用
if ....代替$_offset = $_offset % strlen($char_list); -
$_offset = _$offset - $offset;为什么是_$offset而不是$_offset?
标签: php algorithm character-encoding