XML vernieuwen op server via externe url

Status
Niet open voor verdere reacties.

Olbren

Gebruiker
Lid geworden
4 okt 2010
Berichten
75
Beste dames en heren,

Ik heb een url waarop dagelijks een geupdate xml bestand staat.
Graag zou ik dit xml bestand dan ook dagelijks ververst zien worden op me ftp locatie.

Ik loop echter wel te stoeien met de juiste code daarvoor.
Dus concreet wat er zou moeten gebeuren;

1. Site opent
2. Download via externe url het xml bestand
3. Vervangt bestaande xml bestand op server voor gedownloade versie
4. Site werkt verder met nieuwe xml bestand

Hopelijk is er iemand die mij een duwtje in de goede richting kan geven.

Gr,
Olly
 
Wat voor back-end draai je op de site? In principe kun je bijvoorbeeld (als je linux met PHP gebruikt) een "CRONjob" aanmaken en op een specifieke tijd van de dag een PHP script uitvoeren dat bovenstaande doet (of shell-script of perl of python of ...).
 
Hoi Wampier,

Bedankt voor je reactie.
Het is me gelukt via simplexml_load_file("url")
Omdat de inhoud van de URL per 24 uur verandert zal ik op deze manier altijd over de meest recente info beschikken.
Ik heb de code uitgeprobeerd op een localhost en hij werkt prima!

Maar.... (en misschien moet ik hier een nieuwe topic over maken) op me localhost doet de code het prima.
Maak ik even een extra pagina op de me site aan, werkt het niet. :shocked:
En het is exact dezelfde code.....

Omdat ik toevallig wist dat simplexml_load_file pas toepasbaar is vanaf PHP versie 5, heb ik maar even
gekeken of mijn "budget" provider niet per ongeluk gebruikt maakt van een oude PHP versie.
Maar ook dit was niet het geval.

Nou moet ik eerlijk bekennen dat ik elke dag nog lerende ben hoor met het hele webdevelopment.
En ook dit zal wel ergens aan liggen wat ik nog niet weet. Wampier zou jij weten waar dit aan zou kunnen liggen?

Of iemand anders die het leest?

Alvast hartelijk dank voor de reacties.

Gr.
Olly
 
Wordt de file wel getriggered?

in principe kun je de php direct draaien vanuit de cronjob met:

php <mijnfile.php>
 
Beste Wampier,

Wederom bedankt voor je reactie.
Zoals ik al zei in mijn eerdere post, ben ik elke dag nog lerende op dit gebied.
De termen "getriggered" en "cronjob" zeggen met niet zoveel, wat bedoel je daar precies mee?
 
Ik vroeg in mijn eerste antwoord al naar het type server windows / linux ;) Het antwoord is waarschijnlijk linux, maar omdat je bij een hoster zit kun je mogelijk geen cronjobs instellen (veel hosters vragen extra voor de mogelijkheid).

Een trigger is een reden dat je script gedraaid wordt. zoals het los opstarten of via de webserver als er een pagina opgevraagd wordt. Mijn vraag had dan misschien ook moeten zijn "kun je het script wel opstarten op de server". Als een script lokaal wel werkt maar niet op de server kan dat verschillende redenen hebben. Rechten kunnen anders staan, de omgeving is anders, bepaalde activiteiten zijn beperkt door je hoster, etc. Zaak is om daar een voor een doorheen te gaan. Eerste ding is om op een of andere manier vast te stellen of je script wel start.

Een cronjob is een opdracht die draait op een specifieke tijd of na een bepaalde interval. Dit is de geijkte manier op linux machines om dingen op vaste tijdstippen uit te voeren.
 
Het is inmiddels gelukt om de pagina te laden op mijn online website.
De code die ik wil uitvoeren is als volgt:

<body>
<div id="wrap">
</body>
<?php
$xml = simplexml_load_file('link waar xml bestand wordt opgehaald');
$url = $xml->product->URL;
?>

<a href=" <?php echo $url ?> ">URL uit XML</a>
</body>


Resultaat op me localhost is prima, link komt netjes tevoorschijn en werkt ook (navigeert dus naar de juiste locatie).

Echter op me live website komt de link ook netjes tevoorschijn, maar niet met de juiste
linkverwijzing. Hier gaat de link gewoon weer terug naar me homepage..... :confused:
Ik snap er helemaal niets van....

Iemand een idee wat hier fout gaat?
 
Heel eerlijk bekennen, eigenlijk geen idee ;) Dit gaat mij in ieder geval buiten mijn normale gebruik van deze oplossing. Hopelijk heeft iemand anders een eureka moment
 
wampier,

Ik heb de oorzaak gevonden.... het heeft te maken met de setting allow_url_fopen. Deze setting staat uit i.v.m. veiligheidsoverwegingen en mijn hoster zal deze ook niet aan gaan
zetten, omdat de risico's aanzienlijk groot zijn. Jammer.... maar daarom werkt bovenstaande code dus niet op me live site en wel op me localhost.
Maar ik geef niet op! Uiteindelijk moet het toch ook op een andere manier lukken om vanaf het gegegeven url elke dag een xml bestand automatisch op me server te zetten?
Want dat is feitelijk wat ik probeer te bereiken.

Gr.
 
Ik heb een andere manier gevonden, namelijk door het SOAP protocol de xml bestanden uit te lezen. Maar helaas
ook deze functie staat uit in mijn php configuratie. En wederom krijg ik van me hoster te horen dat ze deze vanwege veiligheidsoverwegingen niet aan kunnen zetten.

Misschien dat er iemand mij kan helpen. Ik heb een link waar elke 24 uur een xml bestand te downloaden is.
Graag zou ik op mijn site dit proces automatisch willen laten gaan. Dus elke keer als de data opgevraagd wordt door de gebruiker het script het laatste xml bestand via de link ophaalt en daar de data uithaalt. Hopelijk ben ik duidelijk genoeg. :confused:

Wie kan mij helpen met een manier, buiten de functies allow url fopen of SOAP protocol. Kan me niet voorstellen dat dit de
enigste twee manieren zijn namelijk.

Hopelijk is er iemand die mij kan helpen.

Alvast bedankt.
Gr,
 
Wat laat de hoster wel toe? SFTP? De oplossing gaat namelijk erg afhankelijk zijn van die hoster.
 
Ik ga er even vanuit dat ze die functie wel toelaten.
Maar dan moet ik alleen nog voor elkaar zien te krijgen in me php om dat bestand daar te krijgen.
Als ik de link nu handmatig in me browser open, dowload deze direct het bestand naar me standaard downloadfolder
Op me harde schijf.
 
Om nog even concreet antwoord te geven op je vraag; Ja, SFTP wordt wel toegestaan door de hoster.
 
Misschien had ik ook moeten vragen welke hoster het is ;) Want nu wordt de vraag of je het mag automatiseren van je hoster. DWZ shell_exec of cronjob. Gezien de vele limitaties die de hoster nu al heeft vrees ik een beetje voor deze features.

Ik ben zelf jaren geleden overgestapt op een VPS en dan ben je grotendeels van dit geneuzel af, maar moet je wel iets meer tijd steken in het up-to-date houden van je server. Qua prijs maakt het eigenlijk weinig meer uit. Ook zijn er wat (duurdere) hosters waarbij je dit soort zaken via een adminpanel kunt regelen.

Je kunt ook even vragen deze post in een andere sectie dan XML neer te zetten of een nieuwe post starten specifiek over het om de hoster heenwerken :) De oplossing heeft namelijk nu niet veel meer te maken met XML en mensen met veel hosting ervaring zullen waarschijnlijk niet vaak in dit deel van het forum komen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan