2017-04-04 212 views
-1

這裏是base64編碼表情符號從我的android手機生成並保存到MySQL當我嘗試在瀏覽器中首先顯示我需要檢查字符串是否base64編碼然後我解碼並打印它,但下面的代碼無法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

'但是下面的代碼不能'你不告訴什麼失敗或出錯。 – greenapps

回答

0
if(base64_encode(base64_decode($mystring)) == $mystring) 

你不能比較這樣兩個字符串的內容。

使用strcmp()函數。

此外,如果$ mystring是base64編碼,則無法以此方式檢查。

您將始終將字符串編碼爲true,然後對結果進行解碼將始終傳遞原始字符串。

比較威爾只會告訴你,如果編碼/解碼的作品。