Haber RSS'lerini 10'ar 10'ar görüntüleme.
Bu kod belirli haber sitesi rsslerinden karışık bi json dosyası çıkartıyor ve hepsini yazdırıyor ama çok fazla haber birden yazdırıldığı için sayfa geç açılıyor. aslında 10 haber sonrasında en aşağıya inildiğinde diğer 10 habe gösterilecek şekilde bi sistem çok iyi olur. Bir çok şey denedim yapamadım benim için yapabilecek delikanlı varmı?
<?php
$page_title = 'Gündem Haberleri & Son Dakika Haberleri';
$rss_urls = array(
'https://www.cnnturk.com/feed/rss/all/news',
'https://webrazzi.com/feed',
'https://evrimagaci.org/rss.xml',
'https://www.cumhuriyet.com.tr/rss',
'https://onedio.com/Publisher/publisher-gundem.rss',
'https://rss.haberler.com/rss.asp?kategori=sondakika',
'https://www.cumhuriyet.com.tr/rss',
'https://haberglobal.com.tr/rss',
);
$combined_data = array();
foreach ($rss_urls as $rss_url) {
$rss = simplexml_load_file($rss_url);
if ($rss) {
foreach ($rss->channel->item as $item) {
$channel_title = (string)$rss->channel->title;
$title = (string)$item->title;
$link = (string)$item->link;
$description = (string)$item->description;
$pubDate = (string)$item->pubDate;
$images = (string)$item->image;
$image = '';
$evrim = '';
$thumbnail = (string)$item->thumbnail['url'];
$media_content = $item->children('media', true)->content;
if ($media_content) {
foreach ($media_content as $content) {
$attributes = $content->attributes();
if ($attributes['medium'] == 'image') {
$image = (string)$attributes['url'];
break;
}
}
}
$media_content = $item->children('media', true)->content;
if ($media_content) {
foreach ($media_content as $content) {
$url = $content->attributes()->url;
if ($url) {
$evrim = (string)$url;
break;
}
}
}
$item_data = array(
'Kanal Başlığı' => $channel_title,
'Başlık' => $title,
'Bağlantı' => $link,
'Açıklama' => $description,
'Yayın Tarihi' => $pubDate,
'Resim' => $image,
'Resimm' => $images,
'Evrim' => $evrim,
'Thumbnail' => $thumbnail
);
$combined_data[] = $item_data;
}
} else {
echo "RSS beslemesi yüklenemedi: $rss_url<br>";
}
}
shuffle($combined_data);
$search_results = array();
if (isset($_GET['search']) && !empty($_GET['search'])) {
$search_query = $_GET['search'];
foreach ($combined_data as $item) {
if (stripos($item['Başlık'], $search_query) !== false || stripos($item['Açıklama'], $search_query) !== false) {
$search_results[] = $item;
}
}
}
?>
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo $page_title ?></title>
<link rel="stylesheet" href="css/style.css">
<link href='https://unpkg.com/[email protected]/css/boxicons.min.css' rel='stylesheet'>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@200;300;400;500;600;700;800;900&family=Barlow+Condensed:wght@700;800">
</head>
<body>
<div class="ss">
<div class="header">
<div class="menü">
<div class="ust">
</div>
</div>
</div>
<div class="container">
<div class="row" style="width: 100%; max-width: 1024px; margin: 0 auto">
<div class="content">
<?php foreach ($combined_data as $item): ?>
<a href="<?php echo $item['Bağlantı']; ?>" target="_blank"><div class="card">
<div class="ns">
<img src="<?php echo $item['Resimm'] . $item['Evrim'] . $item['Thumbnail']; ?>">
<div class="details">
<p class="kaynak"><?php echo $item['Kanal Başlığı']; ?></p>
</div>
<h1 class="baslik"><?php echo $item['Başlık']; ?></h1>
</div>
</div></a>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
<script src="js/main.js"></script>
</body>
</html>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!