【问题标题】:php cookie values to javascript arrayphp cookie 值到 javascript 数组
【发布时间】:2014-10-13 05:11:50
【问题描述】:

我需要将 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 代码中一样。

【问题讨论】:

    标签: javascript php arrays cookies


    【解决方案1】:
    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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 2014-03-30
      相关资源
      最近更新 更多