Anadolu Ajansı'ndan otomatik haber almak 2
yazım: 21 Aralık 08 01:21 / güncelleme: 22 Aralık 08 18:23
Anadolu Ajansı haber paketi XML servisi ile otomatik haber almak ve yayınlamak
İlk yazıda Anadolu Ajansı'ndan heber alan bir class yapımız vardı, şimdi bu class ile haber alıp yayınlamayı ele alacağız.
http://goker.cebeci.name/tr::blog::web_developer_olmak::anadolu_ajansi-ndan_otomatik_haber_almak
Öncelikle haberleri kaydedeceğimiz tablo yapısını oluşturalım.
AAID, Anadolu Ajansı tarafından her habere verilen unique ID numarası, haberlerin tabloda iki defa kaydının (dublicate content) önüne geçmek için AAID'yi Unique Key yapıyoruz.
Gelelim haberleri çekip veritabanına kaydedecek kodlara:
Şimdi de kaydettiğimiz haberleri güncelden geçmişe doğru listeleyelim:
ilk yazıya ulaşmak için, http://goker.cebeci.name/tr::blog::web_developer_olmak::anadolu_ajansi-ndan_otomatik_haber_almak
http://goker.cebeci.name/tr::blog::web_developer_olmak::anadolu_ajansi-ndan_otomatik_haber_almak
Öncelikle haberleri kaydedeceğimiz tablo yapısını oluşturalım.
CREATE TABLE `contents` (
`ID` int(11) NOT NULL auto_increment,
`AAID` int(11) NOT NULL,
`title` varchar(140) NOT NULL,
`description` varchar(255) NOT NULL,
`content` longtext NOT NULL,
`date` datetime NOT NULL,
`status` tinyint(1) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `AAID` (`AAID`),
KEY `date` (`date`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
AAID, Anadolu Ajansı tarafından her habere verilen unique ID numarası, haberlerin tabloda iki defa kaydının (dublicate content) önüne geçmek için AAID'yi Unique Key yapıyoruz.
Gelelim haberleri çekip veritabanına kaydedecek kodlara:
<?
include 'classAA.php';
AA::login();
// AA class'ı içinde tanımladığımız şekilde AA1.xml adında bir dosyaya haberleri kaydetmiş olacak.
if(is_file('AA1.xml')){
$c = simplexml_load_file('AA1.xml'); // XML dosyasının içerğini obje olarak atadık.
$connect = mysql_connect('localhost',[USER],[PASS]);
mysql_select_db('AA',$connect);
// obje olarak atadağımız içeriği AAID kontrolü yaparak veritabanına giriyoruz.
foreach ($c->haber as $news){
mysql_query(sprintf("INSERT INTO contents (AAID, title, description, content, date, status)
VALUES (%d,'%s','%s','%s','%s',1);",
$news->haberid,
addslashes($news->baslik),
addslashes($news->baslik),
addslashes($news->icerik), $news->tarih.' '.$news->saat));
}
mysql_close($connect);
}
?>
Şimdi de kaydettiğimiz haberleri güncelden geçmişe doğru listeleyelim:
<?
$connect = mysql_connect('localhost',[USER],[PASS]);
mysql_select_db('AA',$connect);
$q = mysql_query("SELECT * FROM contents ORDER BY date DESC");
while($news = mysql_fetch_object($q)):?>
<h2><?=$news->title?></h2>
<h3><?=$news->description?></h3>
<div><?=$news->content?></div>
<div><?=$news->date?></div>
<?endwhile;
mysql_close($connect);
?>
ilk yazıya ulaşmak için, http://goker.cebeci.name/tr::blog::web_developer_olmak::anadolu_ajansi-ndan_otomatik_haber_almak







