Door
Michael vanDijk
op 15-12-2020 10:07
gewijzigd op 15-12-2020 10:12
6.979 views
Hoi allemaal,
ik kom er nu niet meer uit. heb alle php.net artikelen betreffende bestandsysteem doorgelopen maar krijg het niet voor elkaar.
wat ik wil bereiken.
ik haal via een externe site een xml bestand op.
deze wordt gegenereerd door een php bestand. dus het is op de externe site een download.
hierdoor kan ik hem niet uitlezen direct.
dus waarschijnlijk moet ik hem eerst opslaan op de server waar de php script draaien?
hoe kan ik deze wegschrijven naar een map.
file() fwrite() file_get_contents() al geprobeerd maar lukt me niet.
of kan ik hem gewoon openen en dan mijn dingen eruit halen die ik nodig heb. ?
heb het nodig voor dit gedeelte van de code
$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: Basic " . base64_encode("$usernamehttp:$passwordhttp")
)
));
$data = file_get_contents($url, false, $context);
//$data = simplexml_load_string($url);
$data = simplexml_load_string($url);
echo "<pre>";
print_r($data);
echo "</pre>";
if($data) {
echo "<pre>".print_r($data,true)."</pre>";
} else {
// de XML kan niet worden uitgelezen, toon de foutmeldingen!
echo "XML-feed kan niet geladen worden:\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}
Ik bedoel de normale output waar je tegenaan loopt. En dat is geen array.
met de curl versie?
[code]
Warning: Use of undefined constant q - assumed 'q' (this will throw an Error in a future version of PHP) in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 86
Warning: Use of undefined constant trim - assumed 'trim' (this will throw an Error in a future version of PHP) in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 35
Array
(
[body] =>
Redirecting
DEEP SEA ELECTRONICS LTD
Highfield House, Hunmanby Industrial Estate, Hunmanby, North Yorkshire YO14 0PH England
Warning: file_get_contents(): Filename cannot be empty in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 94
XML-feed kan niet geladen worden:
Warning: Invalid argument supplied for foreach() in /var/www/vhosts/.nl/httpdocs/power/feed3.php on line 133
nee de url is een xml bestand die als download wordt aangeroepen.
in de browser werkt de link perfect.
daarom dat ik hele tijd aangeef dat het wellicht een idee is om de xml af te vangen op te slaan en dan pas te verwerken. wellicht dat ze het hebben geblokkeerd of iets dergelijks maar ik blijf denken dat het afvangen en opslaan van die xml de way to go is ;-) nou alleen nog bruikbare code hiervoor. alleen weet ik niet hoe ik dat bestand kan opslaan. file() al geprobeerd maar iets in die richting
[size=xsmall]Toevoeging op 23/12/2020 10:17:56:[/size]
dit is een voorbeeld link
create-report.php?type=events&gateway=130090F4C&module=6F25ED98&start=1607515931&end=1607520967&format=xml
dus hij maakt daarna een rapport en die geeft hij als download aan de browser.
Die contactgegevens in die [body], komen die overeen met wat er in het XML-bestand staat?
Want eigenlijk ben ik echt benieuwd naar de rauwe uitvoer. Wat krijgt je dan wél binnen als uitvoer uit curl_exec(..), zonder XML-functies eroverheen?
Het lijkt erop dat het echt geen XML-pagina is. En de website eigenaar zou je waarschijnlijk meer moeten kunnen vertellen. Dit lijkt mij niets meer dan een beveiliging waarvan wij niet weten hoe we er overheen kunnen komen.
Mogelijk is het een IP-beveiliging die bij jou eigen privé internetaansluiting gewhitelist is, maar jouw server niet. Of je hebt te lang met je server proberen te connecten dat je op een blacklist staat. Maar het blijft koffiedik kijken.
Die contactgegevens in die [body], komen die overeen met wat er in het XML-bestand staat?
Want eigenlijk ben ik echt benieuwd naar de rauwe uitvoer. Wat krijgt je dan wél binnen als uitvoer uit curl_exec(..), zonder XML-functies eroverheen?
Het lijkt erop dat het echt geen XML-pagina is. En de website eigenaar zou je waarschijnlijk meer moeten kunnen vertellen. Dit lijkt mij niets meer dan een beveiliging waarvan wij niet weten hoe we er overheen kunnen komen.
Mogelijk is het een IP-beveiliging die bij jou eigen privé internetaansluiting gewhitelist is, maar jouw server niet. Of je hebt te lang met je server proberen te connecten dat je op een blacklist staat. Maar het blijft koffiedik kijken.