PHP反序列化一个JS序列化的变量字符串[重复]
Posted
技术标签:
【中文标题】PHP反序列化一个JS序列化的变量字符串[重复]【英文标题】:PHP unserializing a JS serialized string of variables [duplicate] 【发布时间】:2012-06-19 08:11:46 【问题描述】:当用户单击“生成”元素时,我有以下代码,“serializeData”表单中的数据在 js 中被序列化。该字符串被传递给 loadTemplate 函数,该函数又将该字符串与其他变量一起发布到 php 脚本进行处理。
我正在寻找的是一种在 PHP 中反序列化 js 字符串的方法或获取数据的最佳实践,这是在 PHP 中以字符串形式显示的序列化数据的示例输出:-
input1=meeting&input2=select+date&input3=enter+text&input4=NUMBER+MISSING
序列化后的表单数据在 userData 变量中的 loadTemplate 函数中传递给 PHP。
功能:-
$("#generate").click(function ()
if (eCheck == true)
var templateData = $("#serializeData").serialize();
var templateID = $("#serializeData").attr("name");
loadTemplate(this, templateID, 3, templateData)
return false;
);
function loadTemplate(obj, cat, call, userData)
userData = typeof userData !== "undefined" ? userData : null; // Set userData to null if undefined.
var onSuccess = "#right";
if (call == 1)
onSuccess = "#left";
switchButton(obj);
$("#content").hide();
$("#right-content").text("");
$("#loading").show();
$.ajax(
type: "POST",
url: "./scripts/load.php",
data: id : cat, call: call, userData: userData ,
cache: false,
success: function(html)
$(onSuccess + "-content").html(html);
if (onSuccess == "#left")
$("#content").fadeIn(500);
$("#loading").fadeOut(500);
resizeAll();
);
有什么想法吗?
【问题讨论】:
【参考方案1】:你可以使用parse_str:
$values = array();
parse_str($_POST['userData'], $values);
echo $values['input1']; //Outputs 'meeting'
【讨论】:
这在您通过 AJAX 在 Wordpress 中提交数据时非常有用。【参考方案2】:我认为parse_str
是您所需要的。
【讨论】:
以上是关于PHP反序列化一个JS序列化的变量字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章