2015-03-03 2 views
0

Vous avez essayé d'obtenir du code PHP cURL pour obtenir le flux RSS d'iTunes lorsque vous lui donnez l'URL du podcast. Voici le code:Récupérer le flux RSS d'iTunes en utilisant cURL et PHP

$inputString = "curl -A 'iTunes/12.1.1.4 (Windows; U; Microsoft Windows 7 Home Premium Edition Service Pack 1 (Build 7601) DPI/96' -s 'https://itunes.apple.com/podcast/id530114975'"; 
$input = shell_exec($inputString); 
$dom = new DOMDocument(); 
$html = $dom->loadHTML($input); 

L'appel cURL lorsqu'il est exécuté à l'aide shell_exec retourne une chaîne vide. Quand j'appelle la fonction loadHTML donne l'erreur suivante, ce qui est assez évident étant donné l'appel cURL ne retourne rien .....

Warning: DOMDocument::loadHTML(): Empty string supplied as input in C:\php scripts\itunesFeedExtractor.php on line 130 

Maintenant, j'ai le code PHP cURL d'ailleurs, Je ne l'ai pas encore utilisé, et j'ai essayé de le modifier pour qu'il corresponde à la configuration de mon ordinateur ... J'ai changé la version de Windows, le service pack, non. (Je ne sais pas pourquoi le DPI/96 est nécessaire, je suis parti seul)

+0

Il y a une extension curl PHP que vous feriez mieux d'utiliser. Pas besoin de shell exec curl. – MegaAppBear

+0

essayé d'utiliser l'extension php curl comme ci-dessous, mais qui a toujours renvoyé une chaîne vide. se demandant si les trucs de paramètres dans l'appel curl pourraient être incorrects? – BlahDeBlah

Répondre

0

Eh bien je l'ai eu en travaillant en ajoutant à plus d'options curl_setopt(). Le code complet se lit maintenant:

$ch = curl_init("https://itunes.apple.com/podcast/id530114975"); 
curl_setopt($ch, CURLOPT_USERAGENT, "iTunes/12.1.1.4 (Windows; U; Microsoft Windows 7 Home Premium Edition Service Pack 1 (Build 7601) DPI/96"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($ch); 

..... Vive

0

Vous feriez mieux d'utiliser l'extension curl PHP:

$ch = curl_init("https://itunes.apple.com/podcast/id530114975"); 
curl_setopt($ch, CURLOPT_USERAGENT, "iTunes/12.1.1.4 (Windows; U; Microsoft Windows 7 Home Premium Edition Service Pack 1 (Build 7601) DPI/96"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response = curl_exec($ch); 

Mais si vous voulez vraiment utiliser le shell_exec méthode, assurez-vous que curl est dans votre chemin - vous pouvez vérifier en exécutant la commande curl de cmd/un terminal

+0

droit, bien que j'ai installé les trucs cURL de PHP et la fonction curl_init() est trouvé. Mais il renvoie toujours une chaîne vide comme avant. (Boucle travaillait à partir de la ligne de commande avant BTW) – BlahDeBlah

+0

curl_setopt ($ ch, CURLOPT_USERAGENT, "iTunes/12.1.1.4 (Windows; U; Microsoft Windows 7 Home Service Premium Edition Pack 1 (Build 7601) DPI/96"); $ ch = curl_init ("https://itunes.apple.com/podcast/id530114975"); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, 0); \t \t curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, 0); \t \t curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); \t \t $ response = curl_exec ($ ch); Eh bien, il semble que je l'ai eu en travaillant en ajoutant deux paramètres supplémentaires .... La nouvelle version de PHP cURL qui fonctionne ressemble à ceci: – BlahDeBlah