Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中的JavaScript对象中使用base64_decode()?_Javascript_Php_Base64 - Fatal编程技术网

如何在PHP中的JavaScript对象中使用base64_decode()?

如何在PHP中的JavaScript对象中使用base64_decode()?,javascript,php,base64,Javascript,Php,Base64,如果我有一个JavaScript对象“cat”,并用btoa()对其进行编码,我可以用PHP和 访问猫的属性,如颜色等。?或者PHP只是将cat视为一个对象,但不知道它是什么类型的对象 JavaScript: var cat = {color: "grey", name: "Spot", size: 46}; var base64cat = btoa(cat); PHP: btoa()的参数必须是字符串。如果你对一个对象进行编码,它首先被转换成一个字符串,所以它相当于 var base64ca

如果我有一个JavaScript对象“cat”,并用btoa()对其进行编码,我可以用PHP和 访问猫的属性,如颜色等。?或者PHP只是将cat视为一个对象,但不知道它是什么类型的对象

JavaScript:

var cat = {color: "grey", name: "Spot", size: 46};
var base64cat = btoa(cat);
PHP:

btoa()
的参数必须是字符串。如果你对一个对象进行编码,它首先被转换成一个字符串,所以它相当于

var base64cat = btoa("[object Object]");
这是没有用的

您应该首先对对象进行序列化,然后对其进行编码:

var base64cat = btoa(JSON.stringify(cat));
然后在PHP中使用
base64\u decode()
json\u decode()
对其进行解码


但是,首先没有必要使用base64编码。只需发布JSON。

您不能对这样的对象进行编码。它实际上是在编码字符串
“[对象]”
谢谢,这很有效!现在我可以访问诸如$cat->color等属性。
var base64cat = btoa(JSON.stringify(cat));
$cat = json_decode(base64_decode($_POST['cat']));