php cookie值到javascript数组

php cookie values to javascript array

本文关键字:数组 javascript 值到 cookie php      更新时间:2023-09-26

我需要将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";
        }
?>

给出的例子是过滤所有的错误数据,并用php语言的print_r显示:

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

因此,我想要的是,获得纯javascript语言的读取代码(在我的示例中是用php编写的)。请注意,我在cookie中出现了特殊错误"=;==;=;",它们必须在javascript中正确过滤,就像在我的php代码中一样。

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;
}