2015-12-14 23 views
5

RSS Akışları Öğelerini görüntüleyen bir haber portalım var. Yaklaşık 50 kaynak okunuyor ve çok iyi çalışıyor.RSS-Feed boş bir dize döndürüyor

Sadece bir kaynak ile her zaman boş bir dizim olur. W3C'nin RSS Validator'u RSS beslemesini okuyabilir. Programım Viyana bile veri alıyor.

Ne yapabilirim? web sitesinden içerik getirmesi bazı başlığını gerekli

$link = 'http://blog.bosch-si.com/feed/'; 

$response = file_get_contents($link); 

if($response !== false) { 
    var_dump($response); 
} else { 
    echo 'Error '; 
} 
+1

[[Nasıl] hata ayıklanır? (Http://stackoverflow.com/questions/6724467/why-doesnt-file-get-contents-work) – Naruto

+0

Günlüğünüzde herhangi bir hata var mı? Hata kaydının etkin olduğundan emin olun. – Gordon

+2

Kullanıcı Aracısı'nı kullanmak zorunda, bu/feed/script bunun için kontrol eder. – waza123

cevap

4

sunucunun bir User Agent ayarlanmalıdır bekliyor. Görünüşe göre, User Agent set in your php.ini numaranız yok, ne de file_get_contents aramasına ayarlıyorsunuz.

Ya bir stream context aracılığıyla bu özel istek için Kullanıcı Ajan ayarlayabilirsiniz: Herhangi http aramalar için

echo file_get_contents(
    'http://blog.bosch-si.com/feed/', 
    FALSE, 
    stream_context_create(
     array(
      'http' => array(
       'user_agent' => 'php'    
      ) 
     ) 
    ) 
); 

Ya global: Her ikisi de size istenilen sonucu verecektir

ini_set('user_agent', 'php'); 
echo file_get_contents($link); 

.

+0

daha etkili :) mükemmel cevap –

2

blog http://blog.bosch-si.com/feed/, aynı için daha iyi kullanılması bukle:

İşte benim basit bir koddur.

çözümü aşağıda verilmiştir: O besleme hizmet veren

<?php 
$link = 'http://blog.bosch-si.com/feed/'; 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $link); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: blog.bosch-si.com', 'User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36')); 
$result = curl_exec($ch); 
if(! $result) 
{ 
    echo curl_error($ch); 

} 
curl_close($ch); 
echo $result; 
İlgili konular