ios — получение RSS-канала из iTunes с использованием cURL и переполнения стека

Попытка заставить работать некоторый код PHP cURL, который получает RSS-канал от iTunes, когда вы даете ему URL-адрес подкаста. Вот код:

$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);

Вызов cURL при выполнении с помощью shell_exec возвращает пустую строку.
Когда я вызываю функцию loadHTML, она выдает следующую ошибку, которая довольно очевидна, учитывая, что вызов cURL ничего не возвращает …..

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

Теперь я получил код PHP cURL откуда-то еще, раньше не использовал его и попытался изменить его, чтобы он соответствовал настройкам моих компьютеров … Я изменил версию Windows, пакет обновления, сборку no. (Не знаю, зачем нужен DPI / 96, поэтому я оставил его в покое)

0

Решение

Вам лучше использовать расширение PHP curl:

$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);

Но если вы действительно хотите использовать метод shell_exec, убедитесь, что curl находится на вашем пути — вы можете проверить, запустив команду curl из cmd / a терминала

0

Другие решения

Ну, я заработал, добавив дополнительные параметры curl_setopt (). Полный код теперь гласит:

$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);

Ура …..

0

По вопросам рекламы [email protected]