[PHP] foreach weigert dienst

Pagina: 1
Acties:
  • 36 views sinds 30-01-2008

  • nrg
  • Registratie: April 2001
  • Laatst online: 17:56
Ik ben bezig met een poging om een blog script met template engine te schrijven in PHP, maar nu weigert foreach dienst te doen. Ik heb de code zelf 100 keer doorgelezen, ik heb de code aan een vriend van me laten zien; maar allebei zien we de fout niet.

Op m'n server draait PHP5, maar dat lijkt me geen probleem in dit geval.

Het probleem:
code:
1
2
3
4
5
6
$var1 =
Titel: {titel}<br>
Datum: {datum}<br>
Tijd: {tijd}<br>
Locatie: {locatie}<br>
Verhaal: {tekst}


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$var2 =
Array
(
    [0] => 1
    [ID] => 1
    [1] => 1090421576
    [timestamp] => 1090421576
    [2] => Hoevelaken
    [locatie] => Hoevelaken
    [3] => Test
    [titel] => Test
    [4] => Misschien doet ie t zelfs..
    [tekst] => Misschien doet ie t zelfs..
    [datum] => 21-07-2004
    [tijd] => 16:52
)


PHP:
1
2
3
foreach($var2 as $was => $wordt) {
    $var3 = str_replace("{".$was."}", $wordt, $var1);
}


code:
1
2
3
4
5
6
$var3 =
Titel: {titel}
Datum: {datum}
Tijd: 16:52
Locatie: {locatie}
Verhaal: {tekst}
$var1 is dus niet geheel geparsed, want in $var3 zie je dat het meerendeel nog niet is 'ingevuld'.

Alvast bedankt voor de hulp :)

[ Voor 29% gewijzigd door nrg op 21-07-2004 16:57 ]


  • simon
  • Registratie: Maart 2002
  • Laatst online: 23-05 18:11
Ech eerst eens tijdens die foreach, kijken of hij 't wel doet. Maar ik vind je TS een beetje onhandig (nofi), want met wat je hebt is een beetje weinig 'overzicht' te krijgen :)

|>


  • nrg
  • Registratie: April 2001
  • Laatst online: 17:56
Simon schreef op 21 juli 2004 @ 16:56:
Ech eerst eens tijdens die foreach, kijken of hij 't wel doet. Maar ik vind je TS een beetje onhandig (nofi), want met wat je hebt is een beetje weinig 'overzicht' te krijgen :)
Is nu aangepast.. Beter?

  • phYzar
  • Registratie: November 2001
  • Laatst online: 19:24
misschien de strings die je in je array gooit ff van quotes voorzien? Sowieso al je strings? (var 1 ook)

[ Voor 21% gewijzigd door phYzar op 21-07-2004 16:59 ]


Verwijderd

Uhh.. alleen de laatste vervanging blijft over in $var3, omdat die elke keer overschreven wordt, met een enkele substitutie uit $var1.

Je bedoelt waarschijnlijk

PHP:
1
2
3
4
$var3 = $var1;
foreach($var2 as $was => $wordt) { 
    $var3 = str_replace("{".$was."}", $wordt, $var3); 
}


Lekkere naamgeving overigens :/

[ Voor 12% gewijzigd door Verwijderd op 21-07-2004 16:59 ]


  • nrg
  • Registratie: April 2001
  • Laatst online: 17:56
phYzar schreef op 21 juli 2004 @ 16:58:
misschien de strings die je in je array gooit ff van quotes voorzien? Sowieso al je strings? (var 1 ook)
De code die niet in PHP tags staat, staat niet op die manier in het script. Die heb ik alleen op deze manier even neergezet om het geheel wat duidelijker te maken.

Excuses voor de slechte topicstart :X

Verwijderd

Je replacet iedere keer wel wat, maar begint ook elke keer weer met dezelfde string. Je moet de output van de eerst replacement wel weer meenemen in de volgende natuurlijk.

[edit]
Zie OneOfBorg, je naamgeving is kut, daar heb je niet over nagedacht, wat tot gevolg heeft dat je niet goed kunt nadenken over wat er nu precies allemaal gebeurt met de variabelen.
Voor de rest vind ik dit systeem nogal onpraktisch.

[ Voor 42% gewijzigd door Verwijderd op 21-07-2004 17:02 ]


  • simon
  • Registratie: Maart 2002
  • Laatst online: 23-05 18:11
Weet je hoe enorm verwarrend je naamgeving is, misschien dat je daardoor de fout maakt... Het lijkt mij namelijk geen default debug werk :P

|>


  • nrg
  • Registratie: April 2001
  • Laatst online: 17:56
Verwijderd schreef op 21 juli 2004 @ 16:59:
Uhh.. alleen de laatste vervanging blijft over in $var3, omdat die elke keer overschreven wordt, met een enkele substitutie uit $var1.

Je bedoelt waarschijnlijk

PHP:
1
2
3
4
$var3 = $var1;
foreach($var2 as $was => $wordt) { 
    $var3 = str_replace("{".$was."}", $wordt, $var3); 
}


Lekkere naamgeving overigens :/
Zijn niet de namen van de vars in het echte script, maar ik zie m'n fout nu inderdaad.
Dom. |:(

Slotje svp, zo snel mogelijk :X

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-05 23:07

.oisyn

Moderator Devschuur®

Demotivational Speaker

Mja, dit is wel heel erg basic hoor 8)7

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.