Zoals je hier kan zien ben ik bezig met een project PHPMyStats, ik wil nou zorgen dat ik een module vaker dan één keer kan gebruiken, echter moet ik daarvoor mijn array(die ik al overal gebruik) opnieuw maken.
Ik doe normaal het volgende bij modules uitlezen vanaf een cfg file naar een array:
Ik schijf hierdoor ook de $ret[$key] weg, dus een dubbele module gebruiken KAN gewoon niet, dit moet echte wel kunnen. Dus ik wil ipv een naam bij de array enkel een nummer gebruiken.
Ik ben al een groot end op weg, alleen ik krijg er geen array van gemaakt.
Neem de bovenstaande code en dan even denken dat $buf ongeveer er zo uitziet "modulenaam<;>left<;>bla<;>kradapika".
Ik moet van de laatste waarde van de array $retbuf een \n\r en \n replacen naar niets(weghalen dus), dit wil nog wel lukken. Nou komt het probleem, hoe krijg ik dit terug in een array die de volgende indeling heeft:
Wie kan mij een manier vertellen hoedat ik in het stukje code boven de array opnieuw kan opbouwen.
Ik zat zelf te denken aan deze code:
Echter loopt door deze code mijn array door de war.
OPGELOST:
En dan kom je er achter dat de functie count waarschijnlijk ook de array's in een array meeneemt en dat het script hierdoor vastloopt.
Dan los je het zo op, en het werkt
Ik doe normaal het volgende bij modules uitlezen vanaf een cfg file naar een array:
PHP:
1
2
3
4
5
6
7
8
| while (!feof($file)) { $buf = fgets($file, 4096); $retbuf = explode("<;>",$buf); foreach($retbuf as $key => $val) { //bla //hier return ik naar mn array } } |
Ik schijf hierdoor ook de $ret[$key] weg, dus een dubbele module gebruiken KAN gewoon niet, dit moet echte wel kunnen. Dus ik wil ipv een naam bij de array enkel een nummer gebruiken.
Ik ben al een groot end op weg, alleen ik krijg er geen array van gemaakt.
Neem de bovenstaande code en dan even denken dat $buf ongeveer er zo uitziet "modulenaam<;>left<;>bla<;>kradapika".
Ik moet van de laatste waarde van de array $retbuf een \n\r en \n replacen naar niets(weghalen dus), dit wil nog wel lukken. Nou komt het probleem, hoe krijg ik dit terug in een array die de volgende indeling heeft:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| Array ( [0] => Array ( [0] => modulenam [1] => left [2] => ertdsfgsdfg [3] => dfgdgdfg [4] => dfggdfgdg ) [1] => Array ( [0] => modulenamtwee [1] => right [2] => c:/pagefile.sys ) ) |
Wie kan mij een manier vertellen hoedat ik in het stukje code boven de array opnieuw kan opbouwen.
Ik zat zelf te denken aan deze code:
PHP:
1
2
3
4
5
6
7
8
9
10
| $a = array(); while (!feof($file)) { $buf = fgets($file, 4096); $retbuf = explode("<;>",$buf); $a[]=array(); foreach($retbuf as $key => $val) { //replacen, etc $a[count($a)][]=$val; } } |
Echter loopt door deze code mijn array door de war.
OPGELOST:
En dan kom je er achter dat de functie count waarschijnlijk ook de array's in een array meeneemt en dat het script hierdoor vastloopt.
Dan los je het zo op, en het werkt
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| $a = array(); $i=0; while (!feof($file)) { $buf = fgets($file, 4096); $retbuf = explode("<;>",$buf); $a[$i]=array(); foreach($retbuf as $key => $val) { //replacen, etc $a[$i][]=$val; } $i++; } |
[ Voor 37% gewijzigd door Verwijderd op 20-01-2004 00:18 . Reden: typo in laatste php code, een [] vergeten |:( ]