我必须使用javascript将一组电子邮件地址编码为json字符串,然后使用ajax发送到abc.php。在abc.php中,我必须对其进行解码并将电子邮件发送到该阵列中的所有地址。
目前我正在使用
将数组编码为jsonvar json_string = JSON.stringify(myarray);
在abc.php我正在使用
解码它$emails = json_decode($_POST['json_string']);
// json_string was passed as POST variable using ajax
但是在打印时它会给出NULL。
如何解码它并访问php文件中的各个电子邮件
答案 0 :(得分:2)
如果您可以访问您的网络服务器的php.ini,最好的方法是禁用magic_quotes,因为它们已弃用:
; Magic quotes
;
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off
; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off
; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off
如果您没有服务器访问权限,请使用带有以下选项的.htaccess文件
php_flag magic_quotes_gpc Off
如果您不想使用它,剩下的最后一件事就是使用unescape函数,例如
function ref_stripslashes(&$value,$key) {
$value = stripslashes($value);
}
if((function_exists("get_magic_quotes_gpc") && get_magic_quotes_gpc()) || (ini_get('magic_quotes_sybase') && (strtolower(ini_get('magic_quotes_sybase'))!="off")) ) {
array_walk_recursive($_GET,'ref_stripslashes');
array_walk_recursive($_POST,'ref_stripslashes');
array_walk_recursive($_COOKIE,'ref_stripslashes');
}
这取自the php manual, Lucifer's comment
然后 json_decode($_POST['json_string'])
应该有效。