Zelfde $key's uitlezen in XML ..

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior .NET Back-end Developer in ons innovation t

Bedrijfsomschrijving Namens één van mijn betere klanten, gevestigd in de omgeving van Amstelveen, ben ik op zoek naar een ervaren Senior Back-end Developer met minimaal vier jaar werkervaring. Je komt terecht in een echte developmentorganisatie, waarbinnen momenteel ruim 40 enthousiaste mannen en vrouwen dagelijks werken aan de ontwikkeling van complexe applicaties, die veelal webbased zijn. Deze applicaties worden gebruikt door zowel grote als kleine organisaties in zowel binnen- als buitenland en zijn bedoeld om bedrijven te ondersteunen in alles wat te maken heeft met financiën. Zo levert deze organisatie standaard- en maatwerkapplicaties waarbinnen bedrijven bijvoorbeeld al hun zaken omtrent salarishuishouding

Bekijk vacature »

Ki ma

ki ma

26/11/2013 23:29:03
Quote Anchor link
Bijvoorbeeld:
XML
<photos>
<photo>
http://foto.jpg
</photo>
<photo>
http://foto2.jpg
</photo>
<photo>
http://foto3.jpg
</photo>
</photos>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$object
['photos'] = mysql_real_escape_string($product->photos);

foreach ($product->photos as $foto) {
    $object['photo'] = $foto->photo;
}

?>


Alleen hij pakt alleen maar 1 foto.
Hoe krijg ik de andere fotos in een andere $var?
 
PHP hulp

PHP hulp

27/07/2021 10:27:49
 
Dos Moonen

Dos Moonen

27/11/2013 09:04:04
Quote Anchor link
Kunnen we iets meer code te zien krijgen? Ik heb geen idee waar $product vandaan komt, of wat het is.
 
- SanThe -

- SanThe -

27/11/2013 11:28:09
Quote Anchor link
Alle foto's zullen de foreach() passeren. Alleen jouw probleem is dat je $object['photo'] steeds overschrijft.
 
Ki ma

ki ma

20/12/2013 18:53:52
Quote Anchor link
Maar ook als ik het bijvoorbeeld echo krijg ik ze nog niet, alleen de eerste foto..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
              foreach ($product->photos as $foto2) {
                                $object['foto'] = $foto2->photo;
                                echo $object['foto'] ;
                        }

?>
 
Ivo P

Ivo P

20/12/2013 19:57:48
Quote Anchor link
En hoe vul je $product?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/12/2013 20:02:06
Quote Anchor link
En gooi eens een var_dump op $product, zoals ik het nu in kan schatten is het:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
foreach ($product->photos->photo as $foto) {
    echo $foto, '<br>';
}

?>
Gewijzigd op 20/12/2013 20:03:39 door Ger van Steenderen
 
Ki ma

ki ma

20/12/2013 20:16:35
Quote Anchor link
Uitlezen gaat als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
// feed laden
$xml = simplexml_load_file($url);
// feed uitlezen
foreach ($xml->member->items->item as $product) {
    $object['naam'] = $product->name;
    foreach ($product->photos as $foto2) {
$object['foto'] = $foto2->photo;
        echo $object['foto'] . '<br>';
    }
}

?>


Dit gaat prima, alleen de fotos worden niet allemaal meegenomen..
Gewijzigd op 20/12/2013 20:17:03 door ki ma
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/12/2013 20:35:32
Quote Anchor link
Zie mijn vorige reactie.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
$test
='<?xml version="1.0" ?>
<products>
    <product>
        <name>product1</name>
        <photos>
            <photo>photo1-1</photo>
            <photo>photo1-2</photo>
            <photo>photo1-3</photo>
        </photos>
    </product>
    <product>
        <name>product2</name>
        <photos>
            <photo>photo2-1</photo>
            <photo>photo2-2</photo>
            <photo>photo2-3</photo>
        </photos>
    </product>
</products>'
;

$xml = simplexml_load_string($test);
echo '<pre>';
var_dump($xml);
echo '</pre>';
?>

Resultaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
object(SimpleXMLElement)#1 (1) {
  ["product"]=>
  array(2) {
    [0]=>
    object(SimpleXMLElement)#2 (2) {
      ["name"]=>
      string(8) "product1"
      ["photos"]=>
      object(SimpleXMLElement)#4 (1) {
        ["photo"]=>
        array(3) {
          [0]=>
          string(8) "photo1-1"
          [1]=>
          string(8) "photo1-2"
          [2]=>
          string(8) "photo1-3"
        }
      }
    }
    [1]=>
    object(SimpleXMLElement)#3 (2) {
      ["name"]=>
      string(8) "product2"
      ["photos"]=>
      object(SimpleXMLElement)#4 (1) {
        ["photo"]=>
        array(3) {
          [0]=>
          string(8) "photo2-1"
          [1]=>
          string(8) "photo2-2"
          [2]=>
          string(8) "photo2-3"
        }
      }
    }
  }
}
 
Ivo P

Ivo P

20/12/2013 21:30:41
Quote Anchor link
Op regel 6 vul je steeds hetzelfde element van je array met een waarde. Uiteindelijk sur dan alleen de laatste waarde in je array.

2 regels verder doe je dat ook met je fotos.

$product['fotos'][] = .......
 
Ki ma

ki ma

21/12/2013 13:34:09
Quote Anchor link
Beste Ger,

Bedankt voor je uitleg! Nu heb ik hem te pakken. Het code woord bij deze is wel de var_dump(); nu snap ik hoe het is opgebouwd en dus hoe ik de variabelen kan benaderen.

$foto2->photo[0]; // eerste foto
$foto2->photo[1]; // tweede foto

Nu kom ik er verder wel uit :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.