0

我有 php 文件,我试图从中运行 firefox 并获得 yslow 结果。但是 yslow 结果是以对象形式发送的,例如 [object Object] 结果是使用 post 方法发送的。如何将其转换为 php 代码中的字符串并显示到网页???

4

4 回答 4

1

你的问题有点模棱两可。听起来您正在尝试发布一个正在转换为字符串的 javascript 对象。

{foo:'bar'}.toString(); // return "[object Object]"

如果要将对象包含在 POST 数据中,则需要序列化它。

于 2011-04-08T11:10:02.913 回答
0

我假设它作为 JSON 发送,您可以使用 json_decode 函数 - http://php.net/manual/en/function.json-decode.php

于 2011-04-08T10:54:58.213 回答
0

如果您的对象被传递给JSON.stringifythen 应该作为字符串返回。

var a = { "ynumreq": { "score":85} }; // currently an [object Object]
var b = JSON.stringify(a, null); // now "b" is a string representation of "a", "{ "ynumreq": { "score":85} }"

如果b本质上是您发送到服务器的内容,就像您提到的发布它的位置一样,如果您将 json_decode 用于您的 PHP(如建议的那样),它应该可以工作。

print_r(json_decode($_POST['string_object'])); // in this case it's '{"ynumreq":{"score":85}}'

你应该得到

{"ynumreq":{"score":85}}stdClass Object
(
    [ynumreq] => stdClass Object
    (
        [score] => 85
    )
)

从那里你可以开始获取价值。这是我根据您描述数据的方式进行的测试。

于 2011-04-08T18:19:23.870 回答
-1

JavaScript 对象字符串和 JSON 之间的区别在于,对于 JSON,变量名 foo 用双引号括起来。json_decode 不适用于 JavaScript 对象字符串。

于 2012-03-23T20:22:01.930 回答