String parsen naar array
voor een project wil ik de volgende string omzetten :
Code (php)
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
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
<?
$content = "
auto = <
volvo = <
c30 = <
item_1 = <
brandstof = < bezine >
uitleg = < * >
>
item_2 = <
brandstof = < diesel >
>
>
>
ford = < geen model >
opel = <
astra = <
item_1 = <
brandstof = < bezine >
>
item_2 = <
brandstof = < diesel >
uitleg = < * >
>
>
vectra = <
item_1 = <
brandstof = < bezine >
>
>
>
>
";
?>
$content = "
auto = <
volvo = <
c30 = <
item_1 = <
brandstof = < bezine >
uitleg = < * >
>
item_2 = <
brandstof = < diesel >
>
>
>
ford = < geen model >
opel = <
astra = <
item_1 = <
brandstof = < bezine >
>
item_2 = <
brandstof = < diesel >
uitleg = < * >
>
>
vectra = <
item_1 = <
brandstof = < bezine >
>
>
>
>
";
?>
Ik wil als uitkomst :
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?
$array['auto']['volvo']['c30']['item_1']['brandstof'] = 'benzine';
$array['auto']['volvo']['c30']['item_1']['uitleg'] = '*';
$array['auto']['volvo']['c30']['item_2']['brandstof'] = 'diesel';
$array['auto']['ford'] = 'geen model';
$array['auto']['opel']['astra']['item_1']['brandstof'] = 'benzine';
$array['auto']['opel']['astra']['item_2']['brandstof'] = 'diesel';
$array['auto']['opel']['astra']['item_2']['uitleg'] = '*';
$array['auto']['opel']['vectra']['item_1']['brandstof'] = 'benzine';
?>
$array['auto']['volvo']['c30']['item_1']['brandstof'] = 'benzine';
$array['auto']['volvo']['c30']['item_1']['uitleg'] = '*';
$array['auto']['volvo']['c30']['item_2']['brandstof'] = 'diesel';
$array['auto']['ford'] = 'geen model';
$array['auto']['opel']['astra']['item_1']['brandstof'] = 'benzine';
$array['auto']['opel']['astra']['item_2']['brandstof'] = 'diesel';
$array['auto']['opel']['astra']['item_2']['uitleg'] = '*';
$array['auto']['opel']['vectra']['item_1']['brandstof'] = 'benzine';
?>
Ik heb al vanalles geprobeerd.. uiteindelijk ben ik met deze functie gekomen :
Code (php)
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
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
<?
$i = -1;
function seek($content, $key = "") {
global $i;
$i++;
$exit = false;
$string = "";
$temp = array();
while (($i < strlen($content)) and ($exit == false)) {
switch ($content[$i]) {
case "<":
$return = seek($content, trim($string));
$temp = array($key => $return);
break;
case ">":
if (is_array($return)) {
$temp = array($key => $return);
}
else {
array_push($temp, trim($string));
}
$exit = true;
break;
default:
$string .= $content[$i];
break;
}
$i++;
}
return $temp;
}
?>
$i = -1;
function seek($content, $key = "") {
global $i;
$i++;
$exit = false;
$string = "";
$temp = array();
while (($i < strlen($content)) and ($exit == false)) {
switch ($content[$i]) {
case "<":
$return = seek($content, trim($string));
$temp = array($key => $return);
break;
case ">":
if (is_array($return)) {
$temp = array($key => $return);
}
else {
array_push($temp, trim($string));
}
$exit = true;
break;
default:
$string .= $content[$i];
break;
}
$i++;
}
return $temp;
}
?>
Iemand een betere oplossing?
Gewijzigd op 01/01/1970 01:00:00 door Vince Niet
Gewijzigd op 01/01/1970 01:00:00 door Bo az
En hoe kom je eigenlijk aan zo'n string? Ik bedoel: wie slaat dit soort gegevens nou op zo'n manier op?
Misschien ga ik het wel eerst omzetten naar XML.