2012-09-30 4 views
0

J'utilise les cotations boursières de yahoo pour obtenir les données boursières de leur api. Pour saisir les données à l'aideyahoo stock widget appel à distance en utilisant php

$data = file_get_contents("http://quote.yahoo.com/d/quotes.csv?s=appl&f=sl1d1t1c1ohgv&e=.csv"); 
$values = explode(",", $data); 
echo '<pre>'; 
print_r($values);  

Maintenant, cela fonctionne parfaitement bien dans mon serveur local (localhost), i.e. valeurs $ sont en écho. Mais quand je télécharge ce fichier sur mon serveur, il affiche l'URL: http://quote.yahoo.com/d/quotes.csv?s=appl&f=sl1d1t1c1ohgv&e=.csv. Je sais qu'il y a un problème avec le fichier file_get_contents sur le serveur. Même allow_url_fopen est défini sur "ON" sur le serveur. Il ne semble pas possible de comprendre le problème sur le serveur.

Répondre

0

Vous avez probablement ayant des problèmes avec les paramètres du serveur ne vous permettant pas d'utiliser file_get_contents(). En PHP curl sera votre ami en essayant de tirer le contenu d'autres domaines.

Je viens de découvrir ce petit extrait impressionnant: http://snipplr.com/view/4084

Il est fonction de reproduire la fonctionnalité de file_get_contents() mais utilise curl:

function file_get_contents_curl($url) { 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser. 
    curl_setopt($ch, CURLOPT_URL, $url); 

    $data = curl_exec($ch); 
    curl_close($ch); 

    return $data; 
} 

Votre nouvelle ressemblerait le code ceci:

$data = file_get_contents_curl("http://quote.yahoo.com/d/quotes.csv?s=appl&f=sl1d1t1c1ohgv&e=.csv"); 
$values = explode(",", $data); 
echo '<pre>'; 
print_r($values);  
+0

J'ai essayé de faire ça ... je suis toujours confronté au même problème. – user1411837

Questions connexes