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;
      }
}
- Ariën - op 23/12/2020 09:50:44

Hoe ziet de output eruit?


zie mijn vorige bericht, had hem net aangepast ;-)
@Michael

Zet je code eens tussen [*code*]hier je code[*/code*] maar dan zonder de sterretjes *.
Ik bedoel de normale output waar je tegenaan loopt. En dat is geen array.
- Ariën - op 23/12/2020 09:56:59

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

TELEPHONE +44 (0) 1723 890099 EMAIL [email protected]



© Deep Sea Electronics 2020

Registered in England & Wales 01319649

VAT 3169 234 57

Terms & Conditions / Privacy

Environment: live (73), Version: v2.13.3

[headers] => Array
(
[0] => HTTP/1.1 302 Found
[Date] => Wed, 23 Dec 2020 08:51:50 GMT
[Server] => Apache
[Location] => /login.php
[Content-Length] => 2609
[Connection] => close
[X-Frame-Options] => DENY
[X-Content-Type-Options] => nosniff
[Content-Type] => Array
(
[0] => text/html
[charset] => UTF-8
)

[X-XSS-Protection] => Array
(
[1] => 1
[mode] => block
)

[Strict-Transport-Security] => Array
(
[max-age] => 3153600
[2] =>
)

)

)

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
Blijkbaar roep je iets van een contact-pagina aan van Deep Sea Electronics, of wordt je om een onbekende reden daarheen doorgestuurd.

Ik denk dat het zinvoller is om uitleg bij de website-eigenaar te vragen.
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.
- Ariën - op 23/12/2020 10:18:47

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.


 <?xml version="1.0" encoding="UTF-8"?>
<reports>
	<module>
		<moduleInfo>
			<generatedBy>Michael van Dijk</generatedBy>
			<dateGenerated>15-12-2020 08:34:44 CET</dateGenerated>
			<datesCovered>15-12-2020 08:14:52 CET tot 15-12-2020 08:24:52 CET</datesCovered>
			<gatewayName>200-026 XASI</gatewayName>
			<gatewayUSBID>13025867C090F4C</gatewayUSBID>
			<moduleName>200-026 XASI</moduleName>
			<moduleUSBID>6F25A5ED98</moduleUSBID>
		</moduleInfo>
		<row tijdstempel="15-12-2020 08:18:44 CET" generatorL2Stroom="52" generatorL3Stroom="52"/>
		<row tijdstempel="15-12-2020 08:23:53 CET" generatorL2Stroom="59" generatorL3Stroom="59"/>
	</module>
</reports>


dit is de inhoud van het xml

mits ik hem download in de browser.

welke uitvoer bedoel je precies wat moet ik waar echooen dan ?
Die XML die je hier toont? Krijg je die nu uit jouw script? Want ik zag eerst een body-element met contactgegevens?

Echo eens je curl_exec(.....)
de xml is als ik hem download. niet vanuit het script want dan was het opgelost ;-)

$response = curl_exec($curl);
    echo $response;


out put is HTTP/1.1 302 Found Date: Wed, 23 Dec 2020 09:36:57 GMT Server: Apache Location: /login.php Content-Length: 2609 Connection: close Content-Type: text/html; charset=UTF-8 X-Frame-Options: DENY X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=3153600;

en doe ik de link aanpassen naar user_rss_feed.php dan werkt het perfect. dus het heeft toch echt met die download te maken

Reageren