php cookie值为javascript数组

时间:2014-10-13 05:11:51

标签: javascript php arrays cookies

我需要将PHP代码转换为javascript并将其显示在html页面上。 我正在设置我的cookie(例如有一些特殊错误):

<?php

        setcookie("data","test1=avalue;test2=bvalue;test3=cvalue;test4=;==;=;=;",time()+(60)*(60));

?>

然后另一页正在阅读/检查错误:

<?php
if(isset($_COOKIE)){
    $data=array();
    if(strlen($_COOKIE['data'])>0){
        if((strstr($_COOKIE['data'],";")!=NULL)and(strstr($_COOKIE['data'],"=")!=NULL)){
            $c=explode(";",$_COOKIE['data']);
            foreach($c as $t){
                if(strstr($t,"=")!=NULL){
                    $v=explode("=",$t);
                    if($v[0]!=""){
                        if($v[1]!=""){
                            $data[$v[0]]=$v[1];
                            }else{
                                $data[$v[0]]="n/a";
                                }
                        }
                    }
                }
            }else{
                $data["errors"][]="corupted cookie data";
                }
        }else{
            $data["errors"][]="specific cookie not found";
            }
    }else{
        $data["errors"][]="cookies must be enabled";
        }
?>

并给出示例过滤所有bugus数据并使用php语言中的print_r显示它:

Array (
    [test1] => avalue
    [test2] => bvalue
    [test3] => cvalue
    [test4] => n/a
)

所以我想要的是,获取阅读代码(在我的例子中用php编写)获得纯粹的javascript语言。请注意,我做了特殊错误“=; ==; =; =;”在cookie中,它们必须在javascript中正确过滤,就像在我的PHP代码中一样。

1 个答案:

答案 0 :(得分:0)

function func1(str) {
    var data = {};
    data["errors"] = [];
    if(str.length > 0){
        if(str.indexOf(';') != -1 && str.indexOf('=') != -1) {
            var ary = str.split(';');
            for(var i = 0, l = ary.length; i < l; i++) {
                if(/[^\=]+\=[^\=]*/.test(ary[i])){
                    var v = ary[i].split('=');
                    if(v[1] !== ''){
                        data[v[0]]=v[1];
                    }else{
                        data[v[0]]="n/a";
                    }
                } else {
                    data["errors"].push("corupted cookie data");
                }
            }
        } else {
            data["errors"].push("specific cookie not found");
        }
    } else {
        data["errors"].push("cookies must be enabled");     
    }
    console.log(data);
    return data;
}