2009-05-12 6 views
1

J'ai un script PHP sur un serveur qui génère les données XML à la volée, disons avec Content-Disposition: attachment ou avec simple echo, peu importe. Je vais nommer ce fichier www.something.com/myOwnScript.phpTélécharger le contenu de la page générée par PHP à partir d'un autre script PHP

Sur un autre serveur, dans un autre script PHP, je veux pouvoir obtenir ce fichier (pour éviter d'enregistrer le fichier sur le disque) en tant que chaîne (en utilisant le chemin www.something.com/myOwnScript.php), puis manipulez les données XML générées par le script.

Est-ce possible sans utiliser les services Web? implications de sécurité?

Merci

Répondre

8

Réponse simple, oui:

$output = file_get_contents('http://www.something.com/myOwnScript.php'); 

echo '<pre>'; 
print_r($output); 
echo '</pre>'; 
4

Si vous voulez plus de contrôle sur la façon dont vous demandez les données (en-têtes spoof, envoyez des champs de poste, etc.), vous devriez regarder dans cURL. link text

+0

curl est plus flexible et performant, mais file_get_contents() est plus simple. Personnellement, j'ai tendance à commencer par file_get_contents(), jusqu'à ce que la puissance/performance de curl devienne nécessaire. –

+0

cUrl permet même l'authentification HTTP, vraiment utile (bien sûr, juste quand c'est nécessaire) – Strae

1

Si vous êtes sur un hôte partagé, vous pouvez constater que vous ne pouvez pas utiliser file_get_contents. Ceci principalement parce qu'il fait partie des mêmes ensembles d'autorisations qui vous permettent d'inclure des fichiers distants. Quoi qu'il en soit ...

Si vous êtes coincé dans ce cas, vous pourriez être en mesure d'utiliser CURL:

<?php 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, "example.com"); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     $output = curl_exec($ch); 
     curl_close($ch);  
?> 

Il est plus de code, mais il est toujours simple. Vous avez l'avantage supplémentaire de pouvoir publier des données, définir des en-têtes, des cookies ... tout ce que vous pourriez faire avec un navigateur hautement configurable. Cela le rend utile lorsque les gens tentent de bloquer les robots.

Questions connexes