簡體   English   中英

php-json_encode后,base64編碼的數據丟失

[英]php - base64 encoded data is lost after json_encode

我使用以下代碼為給定的字符串生成加密的字符串。

class MY_class{
    public static function cryption($string){
        $output = base64_encode(openssl_encrypt($string, $cipher_method, $key, 0, $iv));
        $output = $iv . $output;
        return $output;
    }
}

使用此代碼,我生成了模型對象ID的加密ID,並替換了原始ID。

$Model_object = Model_class::find(1);
$Model_object->id = MY_class::cryption($Model_object->id);
echo json_encode($Model_object);

對於給定的實例,將$Model_object print_r()替換為加密的id后,我得到以下結果。

[index] => Array
    (
        [id] => 4df73f34cUYxVmVLWlFUU2M9
    )

但是json_encode()僅輸出加​​密ID的前十進制數字。

{"id":4}

如果有人能夠解釋為什么會發生這種情況以及如何解決此問題,我將非常感激。

PS我已經谷歌搜索這個問題,並在堆棧溢出搜索。 因此,請勿在評論中提及它。

正如@LSerni所說,我隱式地將加密的id(它是一個字符串)分配給整數屬性$Model_object->id

因此,我創建了一個新的動態屬性$Model_object->encrypted_id$Model_object->encrypted_id分配了加密的ID,然后在另一側調用了該屬性。 它像魅力一樣運作。

非常感謝@LSerni對這個問題的理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM