$len
=iconv_strlen(
$str
,'utf-8');
//计算字符串长度
if
(
$len
%2==0)
//如果字符串长度为偶数
{
$mid
=
$len
/2;
//计算字符串一半的长度
for
(
$i
=0;
$i
<
$mid
;
$i
++)
{
if
(iconv_substr(
$str
,
$i
,1,'utf-8')==iconv_substr(
$str
,
$len
-
$i
-1,1,'utf-8'))
{
//截取对称位置字符串时要减 1 是因为字符串索引从 0 开始
$eq
++;
//比较对称位置的字符是否相等,如果相等计数器自增
}
}
if
(
$eq
==
$mid
)
echo
'原字符串是对称的';
//如果对称位置字符串相等的个数恰好等于字符串
一半的长度,说明原字符串是对称的
}
elseif
(
$len
%2!=0)
//如果字符串长度为奇数,说明字符串只能关于最中间的字符串对称
{
$mid
=
ceil
(
$len
/2)-1;
//计算最中间字符的序号
for
(
$i
=0;
$i
<
$mid
;
$i
++)
//这里我们比较的对称位置是出去最中间字符以外的位置
{
if
(iconv_substr(
$str
,
$i
,1,'utf-8')==iconv_substr(
$str
,
$len
-
$i
-1,1,'utf-8'))
{
//截取对称位置字符串时要减 1 是因为字符串索引从 0 开始
$eq
++;
//比较对称位置的字符是否相等,如果相等计数器自增
}
}
if
(
$eq
==
$mid
)
echo
'原字符串是关于字符"'.iconv_substr(
$str
,
$mid
,1,'utf-8').'"对称的';
//如果对称位置字符串相等的个数恰好等于字符串长度一半减去 1,说明原字符串是关于
中间字符对称的
}
?>
</body>
</html>