输入一句英文句子,只有英文字(a-z, A-Z)、每个字之间仅以一个空格分格,前后没有空格。返回的是要把每一个字的字母顺序倒转写,但字的顺序和字母的大小写位置则保持不変
示例:
输入参数This is an Apple on eBay
输出:Siht si na Elppa no yAbe
/**
* 反转英文句子中的单词,并保持对应位置大小写不变
* @param [type] $str [description]
* @return [type] [description]
*/
function stringReverse(
$str){
//将每个单词转为小写并反转
$tmp =
strtolower(
$str);
$tmp =
implode(" ",
array_map("strrev",
explode(" ",
$tmp)));
$strlen =
strlen(
$tmp);
//遍历原始字符串,将新字符串对应位置字符转为大写
while(
$strlen > 0
){
$strlen--
;
$ord =
ord(
$str{
$strlen});
if(
$ord > 64 &&
$ord < 90
){
$tmp{
$strlen} =
strtoupper(
$tmp{
$strlen});
}
}
return $tmp;
}
转载于:https://www.cnblogs.com/praglody/p/6853779.html
相关资源:输入一个英文句子,翻转句子中单词的顺序