Thread: PHP en XML
-
29-09-2010, 23:49 #1Member
- Registered
- 22/12/09
- Location
- Ravels
- Posts
- 35
- iTrader
- 0
- Mentioned
- 0 Post(s)
PHP en XML
Ik heb een XML file:
<fotos>
<image>
<nr>1</nr>
<title>foto1</title>
</image>
<image>
<nr>2</nr>
<title>foto2</title>
</image>
</fotos>
Nu wil ik via php en de get functie de title van een foto weergeven:
link is bijvoorbeeld: foto.php?nummer=1 (dus de titel van foto nummer 1 weergeven).
<?php
if (isset($_GET['nummer']))
{ $nr= $_GET['nummer'];
$xml = simplexml_load_file("fotos.xml");
$title=$xml->image[$nr]->title;
}
?>
Maar dat gedeelte in bold werkt dus niet, als ik daar zelf een 0 of een 1 ingeef werkt het wel. Kan er iemand mij op de juiste weg helpen ?!
bedanktwww.peades.be - eenvoudige websites voor ieders budgetno votes
-
-
30-09-2010, 00:04 #2Approved 9liver
- Registered
- 24/10/07
- Location
- Harelbeke
- Posts
- 7,758
- iTrader
- 0
- Mentioned
- 2 Post(s)
- Reputation
- 1/446
in []-haakjes moet je inhoud met quotes staan ('') dacht ik, ik weet wel niet of dat het probleem is.
Let us pray for all the fools that beno votes
-
30-09-2010, 00:04 #3
Ik heb slechte ervaringen met het gebruik van variabelen en twee keer de -> operator. Nu het is dan ook meer dan een jaar geleden dat ik nog eens naar PHP gekeken heb.
Mijn voorstel in 2 stappen:
$tmp = $xml->image[$nr];
$title = $tmp->title;no votes
-
30-09-2010, 09:01 #4Member
- Registered
- 25/08/05
- Posts
- 68
- iTrader
- 0
- Mentioned
- 0 Post(s)
de waarde van nr wordt niet automagisch gebruikt om je indexering te doen. Je zal moeten op zoek gaan naar de node die je nr bevat. Zonder getest te hebben:
Code:function get_title_for_nr($xml, $nr){ foreach($xml->image as $index => $node){ if($node->nr == $nr) return $node->title; } return false; }Nietskeno votes
-
30-09-2010, 09:01 #5
xml
Eventueel eens een echo geven van je $nr om te kijken of daar wel een waarde is. (moest je dat nog niet hebben gedaan.)
no votes
-
30-09-2010, 21:39 #6Member
- Registered
- 22/12/09
- Location
- Ravels
- Posts
- 35
- iTrader
- 0
- Mentioned
- 0 Post(s)
Last edited by brutal; 30-09-2010 at 21:41. Reason: spellingsfoutjes
www.peades.be - eenvoudige websites voor ieders budgetno votes
-
30-09-2010, 23:05 #7Member
- Registered
- 06/01/09
- Location
- Hasselt
- Posts
- 195
- iTrader
- 16 (90%)
- Mentioned
- 0 Post(s)
De foreach loopt over elke image node in xml , de as $index => $node geeft de node terug die in $xml->image staat voor een bepaalde index.
Je mag eigenlijk 'as $index=> $node' ook schrijven als 'as $node' want de $index gebruik je hier toch niet, de => geeft een key=>value relatie aan en de key heb je hier niet nodig.
Maar meestal wordt dit uit gewoonte zo geschreven, ik doe dat meestal ook
no votes
-
01-10-2010, 08:46 #8Member
- Registered
- 25/08/05
- Posts
- 68
- iTrader
- 0
- Mentioned
- 0 Post(s)
idd, de macht der gewoonte... die index wordt idd niet gebruikt en mag dus weggelaten worden.
Nietskeno votes


