PHP anahtar kelimelere göre bir RSS akı Filtresi

1 Cevap php

Ben (o dinamik, zaten daha statik) PHP küçük bir sitesi var. Ben birden fazla site RSS cereyanları yayınlayan veya her ne isim olduğunu görüyoruz.

Acaba, böyle bir RSS akı yüklemek sitesi tema anahtar kelimeler göre filtreleme ve PHP kullanarak küçük bir tematik haber sütun gibi göstermek için orada bir olasılık.

Bu görevi karmaşık? Ne başlamalıyım mı? Ben, alanında böyle bir soru zaten yanıtladı eğer çok üzgünüm tamamen yeni duyuyorum.

1 Cevap

RSS Verilen:


<rss version="2.0">
<channel>
<title>(Title)</title>
<description>(Description)</description>
<link>http://www.link.to/the/feed/</link>
<item>
<title> New RSS Creation Tool </title>
<description> FeedForAll generates rss feeds so webmasters do not need to struggle with feed creation </description>
<link> http://www.feedforall.com </link> 
<pubDate> Aug, 22 2004 00:12:30 EST </pubDate>
<category> software </category> 
</item>
</channel>
</rss>

Eğer ilgilendiğiniz anahtar kelimeler için başlık, açıklama ve / veya kategori etiketleri tarama olabilir

Kullanıcı size PHP komut bir dizi var diyelim, yani

$keywords = array("php", "mysql", "open source");

Sonra, SimpleXML kullanarak size RSS beslemesi ayrıştırmak:


function has_keyword($haystack, $wordlist)
{
  $found = false;
  foreach ($wordlist as $w)
  {
    if (stripos($w, $haystack) !== 0)
    {
      $found = true;
    }
  }
  return $found;
}

$rss = simplexml_load_file("http://www.mywebsite.com/my/rss/feed/");
foreach ($rss->channel->item as $i)
{
  if (
      has_keywords($i->title, $keywords)
   || has_keywords($i->description, $keywords)
   || has_keywords($i->category)
  )
  {
    $news[] = array
    (
        "title" => $i->title,
        "description" => $i->description,
        "link" => $i->link
    );
  }
}

Bu anahtar kelime ile check seçtiğiniz veri ile doldurulan bir dizi $news, sağlayacaktır.

Siz sadece $news yineleme tarafından, istediğiniz herhangi bir HTML kodu ile bu hale getirebilir.

Bir yan not olarak, aynı zamanda PHP müdahale gerek olmadan, JavaScript ve XMLHttpRequest ile aynı görevi gerçekleştirebilirsiniz. Bir XML olarak yem yükleyin ve aynı prosedürü ile gitmek. Verileri işlemek için document.createElement() Talep ettiğiniz bilgileri içeren alt düğümleri eklemek için kullanabilirsiniz.