function reverse_middle($s, $pos) {
$len = strlen($s);
$mid = (int)(($len - $pos) / 2);
$tmp = "";
for ($i = 0; $i < $mid; $i++) {
$tmp .= $s[$i];
}
for ($i = $mid + $pos - 1; $i >= $mid; $i--) {
$tmp .= $s[$i];
}
for ($i = $mid + $pos; $i < $len; $i++) {
$tmp .= $s[$i];
}
return $tmp;
}
$s = "abcdefg";
$pos = 3;
echo reverse_middle($s, $pos);
/*
run:
abedcfg
*/