为什么我在编码后得到不同的数组?
Why I get different array after encoding?
我想为此将数组编码为字符串我使用了两个函数:
function HashArray($data = array()){
$key = md5('hash');
$cipher = "rijndael-256";
$mode = "cbc";
$data = serialize($data);
return m_encrypt($data, $key, $cipher, $mode);
}
function UnHashArray($data = array()){
$key = md5('hash');
$cipher = "rijndael-256";
$mode = "cbc";
return m_decrypt($data, $key, $cipher, $mode);
}
调用散列函数:
<? $string = HashArray(array('id' => $article->idArticle, 'typeLike' => '1', 'content' => 2, 'contentTypeSub' => 0));?>
在 AJAX 将 $string 发送到服务器后,在服务器 PHP 上我得到哈希字符串:
$array = UnHashArray($this->input->post('data'));
var_dump($array); die();
它给了我字符串:
string(96) "a:4:{s:2:"id";N;s:8:"typeLike";s:1:"1";s:7:"content";i:2;s:14:"contentTypeSub";i:0;}"
我做错了什么?
在你的HashArray
方法上你有
$data = serialize($data);
你的UnHashArray
方法
中缺少这样的东西
$data = unserialize($data);
我想为此将数组编码为字符串我使用了两个函数:
function HashArray($data = array()){
$key = md5('hash');
$cipher = "rijndael-256";
$mode = "cbc";
$data = serialize($data);
return m_encrypt($data, $key, $cipher, $mode);
}
function UnHashArray($data = array()){
$key = md5('hash');
$cipher = "rijndael-256";
$mode = "cbc";
return m_decrypt($data, $key, $cipher, $mode);
}
调用散列函数:
<? $string = HashArray(array('id' => $article->idArticle, 'typeLike' => '1', 'content' => 2, 'contentTypeSub' => 0));?>
在 AJAX 将 $string 发送到服务器后,在服务器 PHP 上我得到哈希字符串:
$array = UnHashArray($this->input->post('data'));
var_dump($array); die();
它给了我字符串:
string(96) "a:4:{s:2:"id";N;s:8:"typeLike";s:1:"1";s:7:"content";i:2;s:14:"contentTypeSub";i:0;}"
我做错了什么?
在你的HashArray
方法上你有
$data = serialize($data);
你的UnHashArray
方法
$data = unserialize($data);