Welkom, Gast. Je bent niet ingelogd.

PHP ≈ serialize()

Lennard
?
Geplaatst op: 17 Apr 2007, 19:04
PimpCoins: 0
💸+
Bewerken Quote

Hee,

Iemand FastFox vroeg aan mij of ik iets wilde maken zodat je een array in een tekstbestandje kon opslaan.
Ik zat toch maar huiswerk te maken, dus dacht; ga ik ff maken.
Daar waren serialize() en unserialize() al voor, maargoed.

Ik ging verder, en had zoiets:

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
<?php
$array = array(
                'lolz',
                array(
                        'naam' => 'lennard',
                        'status' => 'pwner',
                        'website' => array(
                                            'www.google.nl',
                                            'second' => 'www.saven.nl'
                                        )
                    ),
                'a' => 'b'
            );


$string  = "<?php\n";
$string .= "\$array = array(\n";

function readout($array, $level)
{
    
    global $string;
    $end = $array;
    $end = end($end);
    
    foreach($array as $key => $value)
    {
    
        $skey = is_numeric($key) || is_bool($key) ? $key : "'".$key."'";
        $svalue = is_numeric($value) || is_bool($key) ? $value : "'".$value."'";
        
        $fill = str_repeat("\t", $level);
        
        if(is_array($value))
        {
            
            $string .= $fill.$skey." => ".$fill."array (\n";
            
            readout($value, ++$level);
        
        }
        else
        {
            
            if($value == $end)
            {

                $string .= $fill.$skey." => ".$svalue."),\n";
            
            }
            else
            {
            
                $string .= $fill.$skey." => ".$svalue.",\n";
            
            }
        
        }
    
    }

}

$level = 1;
$copy = $array;
$allerlaatste = end($copy);
readout($array, &$level);

$string = substr(trim($string), 0, -1);

$string .= "\t);\n";
$string .= "?>";

echo highlight_string($string, TRUE);
?>

Wanneer ik dat met print_r() uitvoer, krijg ik dit:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Array
(
    [0] => lolz
    [1] => Array
        (
            [naam] => lennard
            [status] => pwner
            [website] => Array
                (
                    [0] => www.google.nl
                    [second] => www.saven.nl
                )

            [a] => b
        )

)

terwijl het dit moet zijn:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Array
(
    [0] => lolz
    [1] => Array
        (
            [naam] => lennard
            [status] => pwner
            [website] => Array
                (
                    [0] => www.google.nl
                    [second] => www.saven.nl
                )

        )

    [a] => b
)

Dus die [a] => b staat verkeerd.

Weet iemand waar ik 't fout doe?

Er zitten wat overbodige dingen in, maar dat komt omdat ik hem moest testen enzeauj.

Anybody?

Florian
kunjeditzien:')?
Geplaatst op: 17 Apr 2007, 20:33
PimpCoins: 0
💸+
Bewerken Quote

[off]Gebruik eens een normale browser, of als je blijft bij dat kutding, gebruik dan geen speciale tekens.[/off]

[off]1000 posts . Thnx sharp voor het melden .[/off]

[Laatst bewerkt door Florian op dinsdag 17 april 2007, om 20:40]
Lennard
?
Geplaatst op: 17 Apr 2007, 21:07
PimpCoins: 0
💸+
Bewerken Quote

Florian schreef:

[off]Gebruik eens een normale browser, of als je blijft bij dat kutding, gebruik dan geen speciale tekens.[/off]

[off]1000 posts . Thnx sharp voor het melden .[/off]


Di's de enige 'site' waar die shizzle niet werkt.

Niemand die mij uit de [ figuurlijke ] brand kan helpen?

📫

Nieuw privébericht

🔥

Registreren


Login