2014-10-13 105 views
-1

我需要將php代碼轉換爲javascript並將其顯示在html頁面上。 我設置我的cookie(例如與一些特殊的錯誤):php cookie值到javascript數組

<?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數據,並即時顯示它與print_r的在PHP語言:

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

所以我想要的東西,得到的識別代碼(在我的例子在PHP writen)獲得純JavaScript語言。請注意,我做了特殊錯誤「=; ==; =; =;」在cookie中,它們必須在JavaScript中進行適當的過濾,就像在我的php代碼中一樣。

回答

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