[PHP] XML bestand lezen met fopen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Ik heb een stukje code (zie hieronder). Ik moet een xml bestand uitlezen die ik terug krijg van een server. Het stukje code is een voorbeeld. Het probleem is dat de variabele $line leeg blijft. Ik gebruik de functie fopen. De code leest wel het juiste aantal regels. xml2.xml bestaat uit 5 regels en er wordt 5x t afgedrukt. Wat doe ik fout?

code:
1
2
3
4
5
6
7
8
9
10
11
$handle  = fopen ("http://localhost/test/xml2.xml", "r");
if (!$handle ) {
    echo "<p>Unable to open remote file.\n";
    exit;
}
while (!feof ($handle )) {
    $line = fgets ($handle , 300);
    /* This only works if the title and its tags are on one line */
    echo $line . "t" . "<br>"; 
}
fclose($handle );


Ik heb veel gezocht naar voorbeelden de meeste doen het zo maar bij mij gaat het niet goed.

[ Voor 6% gewijzigd door JoostMartijn op 24-08-2007 01:21 ]

Windsoft


Acties:
  • 0 Henk 'm!

  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 18-09 11:40
JoostMartijn schreef op vrijdag 24 augustus 2007 @ 01:21:
...Wat doe ik fout?
code:
1
    echo $line . "t" . "<br>";
Ik heb slechte ervaringen met het niet zetten van haakjes bij functies...

Kia e-Niro 2021 64 kWh DynamicPlusLine. See my GitHub and my blog for articles on security and other stuff.


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
echo is geen functie maar een language construct..

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • Atari Paul
  • Registratie: November 2002
  • Laatst online: 22:54
Als je XML rechtstreeks in je browser afdrukt heb je inderdaad kans dat je niets ziet.

Om er zeker van te zijn dat er niets wordt getoond moet je of de source van de pagina bekijken of $line eerst door htmlentities heen halen.

Als dit ook niets oplevert gaat er inderdaad iets niet helemaal goed.

Stability ?? My Atari still has it :)


Acties:
  • 0 Henk 'm!

  • ironx
  • Registratie: Augustus 2001
  • Laatst online: 01-07 19:42
edit:

foutje ... 't is nog te vroeg denk... ;)

[ Voor 154% gewijzigd door ironx op 24-08-2007 07:26 ]


This posting is provided "AS IS" with no warranties, and confers no rights.


Acties:
  • 0 Henk 'm!

  • JoostMartijn
  • Registratie: December 2003
  • Laatst online: 17-04 15:22
Atari Paul schreef op vrijdag 24 augustus 2007 @ 07:15:
Als je XML rechtstreeks in je browser afdrukt heb je inderdaad kans dat je niets ziet.

Om er zeker van te zijn dat er niets wordt getoond moet je of de source van de pagina bekijken of $line eerst door htmlentities heen halen.

Als dit ook niets oplevert gaat er inderdaad iets niet helemaal goed.
Dit had ik al getest. De variabele blijft helemaal leeg. Maar theoretisch moet het toch op deze manieer mogelijk zijn?

Windsoft


Acties:
  • 0 Henk 'm!

  • ikke007
  • Registratie: Juni 2001
  • Laatst online: 18-09 14:10
gertvdijk schreef op vrijdag 24 augustus 2007 @ 01:31:
Ik heb slechte ervaringen met het niet zetten van haakjes bij functies...
en
Grijze Vos schreef op vrijdag 24 augustus 2007 @ 02:17:
echo is geen functie maar een language construct..
Hiermee bedoeld Grijze Vos dus dat echo nooit met haken dient te worden geschreven.

Lets remove all security labels and let the problem of stupidity solve itself


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Heb je al in de source van je pagina gekeken ipv enkel gewoon in je browser kijken? XML zit over het algemeen tussen tags ( <tag>inhoud</tag>). Aangezien dit waarschijnlijk onbekende html tags zijn wordt dit genegeerd door de browser en dus niet in de resulterende html pagina getoond.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 18-09 11:40
Waarom gebruik je niet gewoon file_get_contents()?
Of wil je echt per regel die xml file parsen?

Kia e-Niro 2021 64 kWh DynamicPlusLine. See my GitHub and my blog for articles on security and other stuff.


Acties:
  • 0 Henk 'm!

  • Chesta
  • Registratie: November 2004
  • Laatst online: 27-08 06:55
gertvdijk schreef op vrijdag 24 augustus 2007 @ 12:18:
Waarom gebruik je niet gewoon file_get_contents()?
Of wil je echt per regel die xml file parsen?
en als je per regel wilt gebruik je file()

End of Transmission


Acties:
  • 0 Henk 'm!

  • sariel
  • Registratie: Mei 2004
  • Laatst online: 22-05-2024
PHP:
1
2
3
$data = file("http://localhost/test/xml2.xml");
foreach($data as $line)
   echo $line."t<br>\n";

dit zou moeten doen wat je wil.

eventueel, als je het wil laten zien in een browser:
PHP:
1
2
3
$data = file("http://localhost/test/xml2.xml");
foreach($data as $line)
   echo htmlentities($line)."t<br>\n";

[ Voor 38% gewijzigd door sariel op 24-08-2007 12:41 ]

Copy.com


Acties:
  • 0 Henk 'm!

Verwijderd

Wat gertvdijk zegt: Waarom gebruik je niet file_get_contents() ?

Ik was hier toevallig gisteren mee bezig, en ik prutse lang met fopen, tot ik eens file_get_contents() probeerde en warempel, het werkte.

Give it a shot ;)
Pagina: 1