Получение RSS-канала с помощью jfeed и curl?

Я боролся с этим в течение нескольких часов, сейчас я пытаюсь получить RSS-канал от Maxhire: rsslink, проанализировать содержимое и отобразить его с помощью jfeed. теперь я знаю, что ajax не позволяет использовать междоменный домен, и я использую proxy.php, с которым поставляется jfeed, но безрезультатно, он просто говорит мне, что в URL много перенаправлений, поэтому я увеличил их примерно так:

<?php
header('Content-type: text/html');
$context = array(
    'http'=>array('max_redirects' => 99)
);
$context = stream_context_create($context);
// hand over the context to fopen()
$handle = fopen($_REQUEST['url'], "r", false, $context);

if ($handle) {
    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        echo $buffer;
    }
    fclose($handle);
}
?>

но все же не повезло, он просто возвращает сообщение о том, что объект был перемещен. Итак, я перешел к использованию curl следующим образом:

$ch = curl_init('http://www.maxhire.net/cp/?EC5A6C361E43515B7A591C6539&L=EN');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);

$result = curl_exec($ch);
var_dump($result);

чтобы получить страницу XML локально, но она просто возвращает ту же ошибку, которую переместил объект:

<body>string(237) "<title>Object moved</title>
<h2>Object moved to <a href="/cp/?EC5A6C361E43515B7A591C6539&amp;L=EN&amp;AspxAutoDetectCookieSupport=1&amp;AspxAutoDetectCookieSupport=1">here</a>.</h2>

"
</body>

затем перенаправляет меня на URL локально с: &AspxAutoDetectCookieSupport=1, добавленным в конец. Может кто-нибудь объяснить, пожалуйста, что я делаю не так?

1 ответ

Правильно мне удалось заставить curl работать, имитируя useragent и cookie, и я использую пользовательское метаполе в wordpress, чтобы назначить URL следующим образом:

    <?php
  $mykey_values = get_post_custom_values('maxhireurl');
  foreach ( $mykey_values as $key => $value ) {  
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $value);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.6 (KHTML, like Gecko) Chrome/16.0.897.0 Safari/535.6'); 
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_REFERER, "http://www.maxhire.net");
$html = curl_exec($ch);
curl_close($ch);
echo $html;
}
?>
Другие вопросы по тегам