以下是从我的Android手机生成的base64
编码的表情符号,当我尝试在浏览器中首先显示时保存到MySQL
我需要检查字符串是否base64
编码然后我解码并打印它,但下面的代码无法
$mystring = "8J+YgPCfmInwn5iZ8J+YkPCflIfwn5Oi8J+OtfCfjqfwn5C18J+QiPCfpoTwn5CX8J+MjfCfl7vw\nn4+f8J+PofCfj4Himb/wn5uC8J+atA==\n";
if (base64_encode(base64_decode($mystring)) == $mystring) {
echo base64_decode($mystring);
} else {
echo $mystring;
}
但是,如果我直接解码相同的字符串并打印它
echo base64_decode($mystring);
// output ♿
然而,相同的代码适用于iOS手机生成的微笑。
$mystring = "8J+YgvCfkoHwn5iK8J+RqeKAjfCfkanigI3wn5Gn8J+ZiPCfpKPwn5mJ8J+QvPCfkLbwn5CT8J+MmeKaoe+4j/CfjY7wn42U8J+NlfCfpYPimr3vuI8=";
if(base64_encode(base64_decode($mystring)) == $mystring) {
echo base64_decode($mystring);
} else {
echo $mystring;
}
//output ⚡️⚽️
我不明白这个街区有什么问题:
if(base64_encode(base64_decode($mystring)) == $mystring)
答案 0 :(得分:0)
if(base64_encode(base64_decode($mystring)) == $mystring)
您无法以这种方式比较两个字符串的内容。
使用strcmp()
功能。
此外,如果$ mystring是base64编码,则无法以这种方式检查。
您将始终在编码字符串时获得真实,然后解码结果将始终提供原始字符串。
比较只会告诉您编码/解码是否有效。