source: pmb4.2/trunk/fuentes/pmb/classes/openurl/serialize/openurl_serialize_kev_mtx.class.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 1.8 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2011 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: openurl_serialize_kev_mtx.class.php,v 1.1 2011-08-02 12:35:59 arenou Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once($class_path."/openurl/serialize/openurl_serialize.class.php");
10
11
12class openurl_serialize_kev_mtx extends openurl_serialize {
13       
14        function openurl_serialize_kev_mtx(){
15                parent::openurl_serialize();
16                $this->uri = $this->uri.":kev";
17        }
18       
19        function serialize($tab){ 
20        $serialized_object="";
21        foreach($tab as $key => $value){
22                if(is_array($value)){
23                        foreach($value as $val){
24                                if($serialized_object!= "")$serialized_object.="&";
25                                $serialized_object.="$key=".rawurlencode($val);
26                        }
27                }else{
28                        if($serialized_object!= "")$serialized_object.="&";
29                        $serialized_object.="$key=".rawurlencode($value);
30                }
31        }
32        return $serialized_object;
33    }
34   
35        function unserialize($str){
36                $value_name = $value = $tmp = "";
37                $params = array();
38                for($i=0 ; $i<strlen($str) ; $i++){
39                        switch($str[$i]){
40                                case "=" :
41                                        $value_name = $tmp;
42                                        $tmp = "";
43                                        break;
44                                case "&" :
45                                        $value = $tmp;
46                                        $tmp='';
47                                        if(!isset($params[$value_name])){
48                                                $params[$value_name] = array(
49                                                        rawurldecode($value)
50                                                );
51                                        }else{
52                                                $params[$value_name][] = rawurldecode($value);
53                                        }
54                                        $value = $value_name = "";
55                                        break;
56                                default :
57                                        $tmp.= $str[$i];
58                                        break;
59                        }
60                }
61                if($value_name!="" && $tmp!=""){
62                        if(!isset($params[$value_name])){
63                                $params[$value_name] = array(
64                                        rawurldecode($tmp)
65                                );
66                        }else{
67                                $params[$value_name][] = rawurldecode($tmp);
68                        }               
69                }
70                return $params; 
71        }
72}
Note: See TracBrowser for help on using the repository browser.