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;
      }
}
Je zou deze gewoon moeten kunnen ophalen, ook al zit er 'forced download' header aan vast. Wat gaat er mis? Wat geeft file_get_contents terug?
- Ariën - op 15/12/2020 10:12:15

Je zou deze gewoon moeten kunnen ophalen, ook al zit er 'forced download' header aan vast. Wat gaat er mis? Wat geeft file_get_contents terug?


dat ik moet inloggen, terwijl dat als ik het met een xml bestand doe wat daar wel op de server staat het gewoon werkt..

hij geeft op die link een download aan. dus ik moet iets hebben dat hij dat bestand download en tijdelijk opslaat of iets dergelijks

Als je een melding krijgt over inloggen, dan zal je authenticatie dus niet kloppen. Met de juiste 'sleutel' kan je erbij.
- Ariën - op 15/12/2020 10:34:22

Als je een melding krijgt over inloggen, dan zal je authenticatie dus niet kloppen. Met de juiste 'sleutel' kan je erbij.


dat is juist het probleem, inloggen werkt perfect. alleen komt hij op de "download" pagina en die geeft dan aan dat er niks is.

als ik de link in de browser zet krijg ik een bestand aangeboden. daar moet ik wat mee gaan doen.

[size=xsmall]Toevoeging op 15/12/2020 11:18:06:[/size]

- Ariën - op 15/12/2020 10:34:22

Als je een melding krijgt over inloggen, dan zal je authenticatie dus niet kloppen. Met de juiste 'sleutel' kan je erbij.


dat is juist het probleem, inloggen werkt perfect. alleen komt hij op de "download" pagina en die geeft dan aan dat er niks is.

als ik de link in de browser zet krijg ik een bestand aangeboden. daar moet ik wat mee gaan doen.
Weet je ook hoe het "XML genererende PHP script" werkt? Verwacht die misschien nog een speciale header, of controleert ie of een header een bepaalde waarde heeft? Je browser geeft standaard namelijk een zwik headers mee, dus misschien moet je er daar een van "kopiëren" (of "voor de zekerheid" gewoon allemaal meegeven).
Zit er dus een inlogactie tussen voordat je het kan bekijken? Of is het enkel een speciale header die er verwacht wordt?

- Ariën - op 15/12/2020 12:26:41

Zit er dus een inlogactie tussen voordat je het kan bekijken? Of is het enkel een speciale header die er verwacht wordt?




die inlog actie is er al en die werkt. alleen normaal staat het xml bestand dan daar op de server, bij deze bied hij de xml aan als download...

daaromd at ik dacht/denk dat het iets moet zijn van bestand downloaden en kopieeren op de server dan het bestand parsen op de eigen server en dan de data in de database duwen.

[size=xsmall]Toevoeging op 15/12/2020 12:45:26:[/size]

ik krijg trouwens als ik een reply doe deze foutmelding :
Class Egulias\EmailValidator\EmailValidator does not exist
Dat het als download wordt aangeboden is echt niet van belang voor PHP.
Wat geeft file_get_contents nou precies terug?

En die Class-foutmelding op het forum is bekend bij Bas. Ik zal hem er nog even aan herinneren.
het heeft met de mail-notificatie te maken die eerder stuk was, maar ergens nog bugt.


$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: Basic " . base64_encode("$usernamehttp:$passwordhttp")
)
));
$data = file_get_contents($url, false, $context);
print_r($data);
$data = simplexml_load_string( $data );

geeft een witte pagina

en daaronder komt vanaf simplexml_load_string
de volgende fout
<b>Warning</b>: simplexml_load_string(): Entity: line 38: parser error : Opening and ending tag mismatch: link line 9 and head in <b>/var/www/vhosts/.nl/httpdocs/power/feed3.php</b> on line <b>31</b><br />
<br />
<b>Warning</b>: simplexml_load_string(): &lt;/head&gt; in <b>/var/www/vhosts/.nl/httpdocs/power/feed3.php</b> on line <b>31</b><br />
<br />
<b>Warning</b>: simplexml_load_string(): ^ in <b>/var/www/vhosts/.nl/httpdocs/power/feed3.php</b> on line <b>31</b><br />
Op regel 6:

<?php
$data = file_get_contents($url, false, $context);
?>

Op regel 9

<?php
$data = simplexml_load_string($url);
?>

Hier wordt $data overschreven?

Reageren