Вы можете использовать регулярное выражение:
$str = preg_replace('~^(.)(.*)\1$~','$2',$str);
Regex объяснение:
~
: разделители
^
: стартовый якорь
(.)
: сопоставить и запомнить символ (
вот его первый символ)
(.*)
: сопоставьте что-нибудь и запомните
\1
: вспомнить первый матч
$
: концевой анкер
$2
: вспомнить 2-й матч
В качестве альтернативы вы можете сделать:
// if string has >1 char and 1st and last char as same.
if(strlen($str) > 1 && $str[0] == $str[strlen($str)-1]) {
$str = substr($str,1,strlen($str)-2); // extract the substring
}