2013-07-04 5 views
0

Si une page Web force à travers les en-têtes le téléchargement d'un fichier. Exemple illustré ci-dessous!PHP lire le fichier au lieu de télécharger

trying_to_parse.php:

header('Content-disposition: attachment; filename="examplefile.xml"'); 
header('Content-type: "text/xml"; charset="utf8"'); 
readfile('examplefile.xml'); 

im php L'utilisation de tenter de saisir et d'analyser ce fichier par:

example.php:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'trying_to_parse.php'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
$xml = curl_exec($ch); 
echo $xml; 
curl_close($ch); 

Cela ne fonctionne pas car avec leur boucle ne sont pas en-têtes.

Alors je suis allé de l'avant et j'ai essayé un peu plus de choses comme fopen et file_get _... et ceux-ci ne fonctionnaient pas non plus.

Des idées sur la façon de charger réellement un fichier qui est forcé à travers les en-têtes à télécharger?

Je veux utiliser:

$dom->loadXML($xml); 

Mais prenez mal rien :)

Je veux analyser le fichier ForceDownloadedFile.xml qui est la force téléchargée lorsque vous visitez une URL. Une idée?

+0

S'il vous plaît contacter ce fournisseur de site Web pour l'accès API. – hakre

+4

Cette question semble être hors sujet car il s'agit d'une demande de support pour un site web tiers. – hakre

+1

Nope c'est une question générale Vous venez de ne pas voir cela et comme spam! Edité pour que les gens comme vous puissent le voir plus facilement! –

Répondre

0

C'est une redirection 301, de sorte que vous devez dire curl pour suivre cette redirection, et récupérer le fichier à partir du nouvel emplacement:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
+0

setopt vous voulez dire. Cela ne permet pas la lecture ou le téléchargement du fichier. –

+0

non, mais il permettra à curl de suivre la chaîne de redirection jusqu'à ce qu'il arrive à une URL qui sert certaines données. avec l'option off, curl s'arrêtera net dans ses traces sur la première url, car il n'est pas permis d'aller là où la réponse de google le dit. –

+0

Sur la page de redirection, le fichier est toujours téléchargé et sur la page suivante, il fonctionne également. Le contenu n'est jamais diffusé sur la page correspondant au problème. Je ne peux pas comprendre pour aller chercher le fichier que google essaie de forcer le téléchargement quand je visite la page. –

Questions connexes