gpt4 book ai didi

php 反序列化返回 false

转载 作者:行者123 更新时间:2023-11-29 18:46:15 25 4
gpt4 key购买 nike

我遇到以下问题。我正在检索一个 mysql 文本字段,它是发票的序列化文本。我正在从事两个不同的项目。两者具有相同版本的 PHP。数据从数据库导出并导入到数据库。如果我从 db1 var_dump 数据,它告诉我它的长度是 x。当我在 db2 中执行相同操作时,我得到 x+2

string(595) "a:3:{s:11:"userdetails";a:20:{s:4:"name";s:3:"bas";s:8:"lastname";s:7:"schmitz";s:5:"email";s:17:"email@test.de";s:6:"street";s:11:"f�rstenwall";s:7:"street2";s:0:"";s:7:"company";s:0:"";s:3:"zip";s:5:"40215";s:9:"residence";s:10:"d�sseldorf";s:7:"country";s:7:"Germany";s:5:"phone";s:7:"3033185";s:3:"fax";s:0:"";s:10:"customerID";i:202771;s:2:"nr";s:3:"228";s:6:"region";s:3:"nrw";s:10:"phone_code";s:3:"211";s:8:"fax_code";s:0:"";s:10:"salutation";s:2:"Mr";s:5:"sales";s:0:"";s:12:"country_code";s:0:"";s:10:"vat_number";s:0:"";}s:6:"domain";s:15:"bas-schmitz2.de";s:10:"has_domain";b:1;}"


string(597) "a:3:{s:11:"userdetails";a:20:{s:4:"name";s:3:"bas";s:8:"lastname";s:7:"schmitz";s:5:"email";s:17:"email@test.de";s:6:"street";s:11:"fürstenwall";s:7:"street2";s:0:"";s:7:"company";s:0:"";s:3:"zip";s:5:"40215";s:9:"residence";s:10:"düsseldorf";s:7:"country";s:7:"Germany";s:5:"phone";s:7:"3033185";s:3:"fax";s:0:"";s:10:"customerID";i:202771;s:2:"nr";s:3:"228";s:6:"region";s:3:"nrw";s:10:"phone_code";s:3:"211";s:8:"fax_code";s:0:"";s:10:"salutation";s:2:"Mr";s:5:"sales";s:0:"";s:12:"country_code";s:0:"";s:10:"vat_number";s:0:"";}s:6:"domain";s:15:"bas-schmitz2.de";s:10:"has_domain";b:1;}"

当我粘贴这些时,我可以看到显示德语字符时存在差异

知道为什么会发生这种情况吗?

最佳答案

serialize()的输出不能作为纯文本处理:

Return Values

Returns a string containing a byte-stream representation of value that can be stored anywhere.

Note that this is a binary string which may include null bytes, and needs to be stored and handled as such. For example, serialize() output should generally be stored in a BLOB field in a database, rather than a CHAR or TEXT field.

因此,您的数据首先就被损坏了。

如果您无法更改数据库设计(这将是正确的解决方案),则需要以纯文本编码(例如 Base64)重新编码序列化数据:

$encoded = base64_encode(serialize($foo));
$decoded = unserialize(base64_decode($encoded));

关于php 反序列化返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44623651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com