楼主是再搞身份证验证的吧?
$a=strlen($body,-1 1)//提取第18位数字
这句错了 应该是 
$a= substr($body,-1 1) $b=strlen($body,17)//提取前17位数字
同样改成 $b = subtr($body,0,17) if $ai[($sigma % 11)=$a //如果运算结果和第18位数字相等就提示。 
echo 正确 
echo $body.$ai[($sigma % 11)];改成if ($ai[($sigma % 11)]==$a) //如果运算结果和第18位数字相等就提示。

    echo "正确"; 
    echo $body.$ai[($sigma % 11)];
}