background image

$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>