Help! XML bestand ophalen en verwerken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rico

Rico

21/03/2008 13:56:00
Quote Anchor link
Hallo,

Ik moet een xml bestand van een beveiligde server downloaden, maar ik heb alles al geprobeert en het werkt op geen enkele manier.

Als ik het url gebruik dan krijg ik HTTP request 1.1. Dus geen toegang. Als ik het op deze manier probeer "http://loginnaam:paswoord@http://url.xml"
dan krijg ik de pagina van het hosting bedrijf waar mijn server is ondergebracht. Ook is bij de server waar ik het van ophaal ingesteld dat mijn server toegang heeft. Maar toch moet ik inloggen.

Weet iemand hier een oplossing voor die wel werkt? Ik ben er nu al een paar dagen mee bezig, maar niks werkt.

Alvast bedankt voor jullie tijd en hulp.
Gewijzigd op 01/01/1970 01:00:00 door Rico
 
PHP hulp

PHP hulp

23/12/2024 04:52:24
 
Gerben Jacobs

Gerben Jacobs

21/03/2008 14:02:00
Quote Anchor link
1: Betere titels maken.
2: Kijk eens naar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php header(); ?>
 
Bas IJzelendoorn

Bas IJzelendoorn

21/03/2008 14:10:00
Quote Anchor link
Heb je de xml etc zelf gemaakt? of is ie van het hosting bedrijf zelf? want dan zou ik contact zoeken met het hosting bedrijf. Eerst ff in hun FAQ kijken uiteraard (als ze die hebben)

of begrijp ik de vraag verkeerd:S:S

Nou ja iig sterkte
 
Rico

Rico

21/03/2008 14:21:00
Quote Anchor link
Het bestand wordt aangemaakt door bedrijf X. Ik kan het bestand handmatig ook downloaden, maar dan moet ik inloggen voor ik toegang heb. De hosting staat er eigenlijk helemaal buiten, maar als ik het bestand van bedrijf X wil ophalen via file_get_contents om hem te verwerken dan krijg ik als ik alleen het url ingeef
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$success= $doc->loadXML("daily.index.xml");
een HTTP Request 1.1 en dus geen toegang. Als ik het via manier 2 doe
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
http://loginnaam:paswoord@http://url.xml
dan kijg ik niet het bestand van url.xml te zien, maar de index pagina van mijn hostingbedrijf waar de site van mij staat.

Gerben: Ik ga eens kijken of het misschien lukt met dat header gedeelte.
 
- wes  -

- wes -

21/03/2008 14:24:00
Quote Anchor link
gooi even een betere topictitel, dit is phpHULP , de meesten komen hier voor hulp..
 
Jeffrey

Jeffrey

21/03/2008 14:29:00
Quote Anchor link
Moet dat http:// na de @ niet weg?

Bij ftp is het namelijk ook gewoon:
ftp://username:[email protected]

en niet ftp://username:password@http://site.com
 
Rico

Rico

21/03/2008 14:45:00
Quote Anchor link
Wes: Helaas heb ik weinig aan je reactie.

Jeffrey: bedankt. Nu werkt het. Ik had wel het gevoel dat het iets simpels was waar ik overheen heb gekeken door alle code die ik de laatste weken heb gezien.

Het volgende probleem wat ik nu heb ik dat de server bij bestanden van 1.5mb wel een nette lijst laat zien, maar met een xml bestand van 50mb ineens niks laat zien. :S Hij lijkt het wel te verwerken, maar laat niks zien.
Gewijzigd op 01/01/1970 01:00:00 door Rico
 
Crispijn -

Crispijn -

21/03/2008 15:09:00
Quote Anchor link
Wes praat toch geen poep? Verzin even een toepasselijke titel op het gebied van php. Niet op het gebied van je hulp-vraag
 
Rico

Rico

21/03/2008 15:12:00
Quote Anchor link
Crispijn: ook aan jou reactie heb ik weinig helaas.
 
Crispijn -

Crispijn -

21/03/2008 15:13:00
Quote Anchor link
Nee? Is je probleem hier niet mee opgelost? Hmmm, ik dacht dat ik aardig kon php-en... :S
 
Joren de Wit

Joren de Wit

21/03/2008 15:15:00
Quote Anchor link
Probeer de inhoud van het xml bestand eens te echoën, en zie eens of dat wel goed gaat...
 
Patrick Niezen

Patrick Niezen

21/03/2008 15:17:00
Quote Anchor link
Ik heb er zelf geen ervaring mee, klinkt wel leuk om te implementeren. Ik zou het eerst proberen met cURL (http://nl3.php.net/manual/en/ref.curl.php).
 
Rico

Rico

21/03/2008 16:41:00
Quote Anchor link
Blanche schreef op 21.03.2008 15:15:
Probeer de inhoud van het xml bestand eens te echoën, en zie eens of dat wel goed gaat...


Het lijkt me niet slim om een bestand van 50mb in een echo te zetten. :D Maar ik weet iig dat het bestand wordt verwerkt, want met kleine bestanden die op precies dezelfde manier verwerkt worden werkt het wel. Blijkbaar is de grote een probleem. Ik heb al rondgezocht naar een oplossing om dat 50mb xml bestand in 2mb bestanden te verdelen, maar niks gevonden dat xml bestand splitst en werkt.
 
Joren de Wit

Joren de Wit

21/03/2008 16:44:00
Quote Anchor link
Quote:
Blijkbaar is de grote een probleem.
Dat vermoed ik ook en daarom zou je moeten uitzoeken wanneer dat probleem optreedt. Als het wel lukt om het bestand te echoën, weet je namelijk dat het probleem niet zit in het inladen van het bestand.

Dat het echoën lang gaat duren, tja wat maakt dat uit. Het is toch maar eenmalig...
 
Rico

Rico

21/03/2008 17:02:00
Quote Anchor link
Blanche: het echoën gaat zonder problemen. dus hij pakt het volledige bestand wel. :S

Ik heb het grote bestand nu lokaal op de server gezet en vanaf daar geprobeert, maar dan is ook weer hetzelfde probleem. Krijg een wit scherm :S
Gewijzigd op 01/01/1970 01:00:00 door Rico
 
Joren de Wit

Joren de Wit

21/03/2008 17:06:00
Quote Anchor link
Hoe ziet de code eruit die je nu gebruikt?
 
Rico

Rico

21/03/2008 17:12:00
Quote Anchor link
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
<?php

require_once('domit/xml_domit_include.php');

$doc =& new DOMIT_Document();
$success= $doc->loadXML("http://loginnaam:[email protected]");

$nodes =& $doc->documentElement->childNodes[0];
$node =& $nodes->childNodes;
$num =& $nodes->childCount;

for ($i = 0; $i < $num; $i++) {

$currentNode =& $node[$i];
$id =& $currentNode->getAttribute("ID");
$path =& $currentNode->getAttribute("path");
$cat =& $currentNode->getAttribute("cat_ID");

echo ("<tr><td>".$i."</td>");
echo ("<td>".$id."</td>");
echo ("<td>".$path."</td>");
echo ("<td>".$cat."</td></tr>");

}

?>


Met bestanden tot 1.6mb werkt het perfect, maar een bestand van 50mb geeft dus niks. Beide bestanden zijn hetzelfde qua indeling, alleen de grote is anders.

Uiteindelijk zullen de gegevens opgeslagen worden in een db. Dus het gaat maar om een eenmalige verwerking van het grote bestand, daarna zou hij elke dag om een bepaalde tijd de dagelijkse update moeten verwerken.
Gewijzigd op 01/01/1970 01:00:00 door Rico
 
Joren de Wit

Joren de Wit

21/03/2008 17:24:00
Quote Anchor link
Tip: gebruik het reeds in PHP aanwezige SimpleXML om met XML aan de slag te gaan. Dat DOMIT ken ik niet, dus geen idee wat voor invloed het zou kunnen hebben op de prestaties of hoe efficient die XML parser is.

Verder denk ik dat het slimmer is om dat bestand van 50mb wel vanuit hetzelfde bestandsysteem te laden. Als je dat vanaf een externe website wilt doen, wordt je script er wel een stuk trager op. Dan zou je beter nog eens in de zoveel tijd een ander scriptje kunnen draaien dat dat bestand automatisch update.
 
Rico

Rico

21/03/2008 21:13:00
Quote Anchor link
Ik heb ook al geprobeert het vanuit dezelfde dir te laten lopen. Maar dat maakt niks uit, hij blijft dan toch een wit scherm geven.
 
Joren de Wit

Joren de Wit

21/03/2008 21:21:00
Quote Anchor link
Had je het al met SimpleXML geprobeerd?
 
Rico

Rico

21/03/2008 22:44:00
Quote Anchor link
Helaas werkt SimpleXML niet omdat mijn hosting geen PHP 5 draait. :S

Ik heb nog wat getest, en het blijkt dat als er meer als 3000 nodes in het xml bestand staan er een probleem ontstaat. Aangezien er ruim 218000 nodes in het bestand van 50mb staan word dit lastig.

Weet iemand een manier zodat ik per 3000 nodes het bestand kan verwerken?
Gewijzigd op 01/01/1970 01:00:00 door Rico
 



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.