objecturl-converter

Gesponsorde koppelingen

PHP script bestanden

  1. objecturl-converter

« Lees de omschrijving en reacties

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?php
/**
 * @author Nico Kaag
 * @copyright 2009
 */

/**
 * @Description Maakt een URL (vanaf het ?) vanuit een Object
 * @Param $object : Object() : Het object waaruit de URL moet worden gecreĆ«rd
 * @return : String : een url vanaf het ?
 */

function ObjectToUrl($object) {
    // Maak lege array aan om te vullen met de waardes
    $array = array();
    // Cast het Object naar een Array en loop deze door
    foreach ((array)$object as $key => $value) {
        // Even de Key waarde opschonen door de klasse naam eruit te halen, en de eerste twee tekens verwijderen.
        $key = str_replace(get_class($object), '', $key);
        $key = substr($key, 2);
        // Voeg gegevens toe aan de array
        $array[$key] = $value;
    }

    
    // Begincode van de URL
    $url = "?";
    $i = 0;
    // Loop de array
    foreach($array as $key => $value) {
        // Als er geen waarde is, doen we lekker niks
        if (!empty($value)) {
            // Als we nog bij de eerste zijn, dan geen & ervoor, want we hebben het ? al
            if ($i != 0) {
                $url .= '&';
            }

            $i++;
            // Spaties vervangen door underscores
            $value = str_replace(' ', '_', $value);
            // URL opbouwen, En nog een urlencode over de Value, zodat deze geen erros gaan veroorzaken.
            $url .= $key .'='. urlencode($value);
        }
    }

    // Geef de URL terug
    return $url;
}


/**
 * @Description Maakt van een opgegeven URL een object naar keuze
 * @Param $object : Object() : Een instantie van een Object die moet worden gevuld
 * @Param $url : String : De url waaruit het object moet worden gemaakt, Gebruik "null" om de algemene "$_GET" te gebruiken
 * @Param $useSetter : Boolean : true als er gebruik word gemaakt van setters (standaard), anders false
 */

function UrlToObject($object, $url = null, $useSetter = true) {
    // Even een lijst maken met alle variablen in de klasse
    $objectVars = getObjectVariables($object);
    // Als er geen URL is opgegeven, dan lopen doen wij het gewoon via de GET
    if ($url == null) {
        // een loop door de Get
        foreach ($_GET as $key => $value) {
            // Kijken of de variable ook echt in de klasse bestaat
            if (in_array($key, $objectVars)) {
                // Als er setters worden gebruikt
                if ($useSetter) {
                    // Maak de naam van de set Functie, en roep deze aan, en haal er ook meteen een urldecode overheen
                    $setMethod = 'set'. ucfirst($key);
                    $object->$setMethod(urldecode($value));
                }
else {
                    // Zet de variable met een url_decode, WERKT NIET MET PRIVATE OF PROTECTED OF STATIC VARIABLEN
                    $object->$key = urldecode($value);
                }
            }
        }
    }
else {
        // Data opdelen vanaf de vraagteken
        $data = explode('?', $url);
        // Alles voor het vraagteken uit de array schoppen
        array_shift($data);
        // De rest van de data doorlopen.
        foreach ($data as $item) {
            //Opdelen in tussen de &
            $item = explode('&', $item);
            // Alles doorloopen
            foreach ($item as $subItem) {
                // verdelen op de =
                $subItem = explode('=', $subItem);
                // de Key staat voor de =
                $key = $subItem[0];
                // underscores vervangen door spaties
                $value = str_replace('_', ' ', $subItem[1]);
                // Kijken of de variable ook echt in de klasse bestaat
                if (in_array($key, $objectVars)) {
                    if ($useSetter) {
                        // Maak de naam van de set Functie, en roep deze aan, en haal er ook meteen een urldecode overheen                        
                        $setMethod = 'set'. ucfirst($key);
                        $object->$setMethod(urldecode($value));
                    }
else {
                        // Zet de variable met een url_decode, WERKT NIET MET PRIVATE OF PROTECTED OF STATIC VARIABLEN
                        $object->$key = urldecode($value);
                    }
                }
            }
        }
    }

    // Geef het object terug
    return $object;
}


/**
 * @Description Maakt een lijst met alle klasse variablen van de opgegeven klasse
 * @Param $object : Object() : Het object waarvan de variablen moeten worden gevonden
 * @Return : Array() : met alle klasse variablen
 */

function getObjectVariables($object) {
    // Maak array aan om te vullen en te returnen
    $array = array();
    // Cast Object naar een array en loop hem door, Waarbij Key de variable naam is, met de klassenaam tussen 2 onbekende tekens ervoor
    foreach ((array)$object as $key => $value) {
        // Vervang de Klasse naam met niks, en verwijder de eerste 2 karakters.
        $key = str_replace(get_class($object), '', $key);
        $key = substr($key, 2);
        // Voeg de variable naam toe aan de Array
        $array[] = $key;
    }

    // Geef de array terug
    return $array;
}

?>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.