Zelfde $key's uitlezen in XML ..

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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

24/11/2024 04:16:56
 
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.