• 27-08-2014, 17:25:22
    #1
    Üyeliği durduruldu
    Merhabalar.. Aşşağıdaki kodda karakter sorunu var nasıl düzeltiriz.

    Bazı yazı başlıkları şöyle gözüküyor:
    Öğrenci 'Allah' İsmini
    Aliya İzzetbegoviç: Türkiye'nin Geleceği
    Papa'ya Neden IŞİD'in Hedefinde



    <?php
    $resim_goster = TRUE;
    
    header ("Content-type: application/rss+xml; charset=utf-8");
    
    
    $ek = '';
    if(isset($_GET['kategori'])) {
    	$ek = "-".$_GET['kategori'];
    }
    
    $cachefile = "cache/rss-yandex-news".$ek.".rss";
    
    
    # 15 dakika
    $cachetime = 60 * 5;
    if (file_exists($cachefile)){
    	if(time() - $cachetime < filemtime($cachefile)){
    		readfile($cachefile);
    		exit;
    	}else{
    		unlink($cachefile);
    	}
    }
    
    
    
    
    ob_start();
    include "_boot.php";
    
    
    $where = '';
    if(isset($_GET['kategori'])) {
    	$where.= "AND kategori = '".safe($_GET['kategori'],'string')."'";
    }
    
    
    echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    ?>
    <rss xmlns:yandex="http://haber.yandex.com.tr/" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    	<channel>
    	<title><?=temizlik_SM($ayar['siteadi'],false)?></title>
    	<link><?=$ayar['url']?></link>
    	<description><?=temizlik_SM($ayar['slogan'],false)?></description>
    	<image>
    		<title><?=temizlik_SM($ayar['siteadi'],false)?></title>
    		<link><?=$ayar['url']?></link>
    		<url><?=$ayar['url']?>images/banner/<?=$ayar['logo']?></url>
    	</image>
    
    	<?php
    
    	$onceki = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s').' -1 week'));
    	$news = $db->getir("SELECT id, baslik, kategori, spot, hta, detay, DATE_FORMAT(tarih,'%a, %d %b %Y %T') AS tarihx, resim, hta FROM haber WHERE aktif = '1' AND tarih >= '".$onceki."' $where ORDER BY tarih DESC LIMIT 900");
    
    	if($news) {
    
    		foreach($news AS $row) {
    
    			$row['baslik'] = temizlik_SM($row['baslik']);
    			$row['spot']   = temizlik_SM($row['spot']);
    			$row['detay']  = strip_tags(temizlik_SM($row['detay']));
    			
    	?>
    
    	<item>
    		<link><?=$ayar['url'].$row['hta']."-h".$row['id']?>.html</link>
    		<pubDate><?=$row['tarihx']?> +0300</pubDate>
    		<category><![CDATA[<?=$row['kategori']?>]]></category>
    		<title><![CDATA[<?=$row['baslik']?>]]></title>
    		<description><![CDATA[<?=$row['spot']?>]]></description>
    		<yandex:full-text><![CDATA[<?=$row['detay']?>]]></yandex:full-text>
    		<yandex:related>
    		<link url="<?=$ayar['url'].$row['hta']."-h".$row['id']?>.html"><?=tirnaksil($row['baslik'],false)?></link>
    		</yandex:related>
    
    
    	</item>
    
    	<? } } ?>
    
    	</channel>
    </rss>
    
    
    <?php
    
    
    function temizlik_SM($s) {
    
    	$bul      = array("&", "<", ">", "'", "\"", "&amp;#39;", "’", "–");
    	$degistir = array("&amp;", "&lt;", "&gt;", "", "&quot;", "", "", "");
    
    	return str_replace($bul,$degistir,$s);
    
    }
    
    
    
    file_put_contents($cachefile, ob_get_contents());
    ob_end_flush();
    Ustalar bir el atın size zahmet...
  • 27-08-2014, 18:42:58
    #2
    TURAN40 adlı üyeden alıntı: mesajı görüntüle
    Merhabalar.. Aşşağıdaki kodda karakter sorunu var nasıl düzeltiriz.

    Bazı yazı başlıkları şöyle gözüküyor:
    Öğrenci &amp;#039;Allah&amp;#039; İsmini
    Aliya İzzetbegoviç: Türkiye&amp;#039;nin Geleceği
    Papa&amp;#039;ya Neden IŞİD&amp;#039;in Hedefinde



    <?php
    $resim_goster = TRUE;
    
    header ("Content-type: application/rss+xml; charset=utf-8");
    
    
    $ek = '';
    if(isset($_GET['kategori'])) {
    	$ek = "-".$_GET['kategori'];
    }
    
    $cachefile = "cache/rss-yandex-news".$ek.".rss";
    
    
    # 15 dakika
    $cachetime = 60 * 5;
    if (file_exists($cachefile)){
    	if(time() - $cachetime < filemtime($cachefile)){
    		readfile($cachefile);
    		exit;
    	}else{
    		unlink($cachefile);
    	}
    }
    
    
    
    
    ob_start();
    include "_boot.php";
    
    
    $where = '';
    if(isset($_GET['kategori'])) {
    	$where.= "AND kategori = '".safe($_GET['kategori'],'string')."'";
    }
    
    
    echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    ?>
    <rss xmlns:yandex="http://haber.yandex.com.tr/" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    	<channel>
    	<title><?=temizlik_SM($ayar['siteadi'],false)?></title>
    	<link><?=$ayar['url']?></link>
    	<description><?=temizlik_SM($ayar['slogan'],false)?></description>
    	<image>
    		<title><?=temizlik_SM($ayar['siteadi'],false)?></title>
    		<link><?=$ayar['url']?></link>
    		<url><?=$ayar['url']?>images/banner/<?=$ayar['logo']?></url>
    	</image>
    
    	<?php
    
    	$onceki = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s').' -1 week'));
    	$news = $db->getir("SELECT id, baslik, kategori, spot, hta, detay, DATE_FORMAT(tarih,'%a, %d %b %Y %T') AS tarihx, resim, hta FROM haber WHERE aktif = '1' AND tarih >= '".$onceki."' $where ORDER BY tarih DESC LIMIT 900");
    
    	if($news) {
    
    		foreach($news AS $row) {
    
    			$row['baslik'] = temizlik_SM($row['baslik']);
    			$row['spot']   = temizlik_SM($row['spot']);
    			$row['detay']  = strip_tags(temizlik_SM($row['detay']));
    			
    	?>
    
    	<item>
    		<link><?=$ayar['url'].$row['hta']."-h".$row['id']?>.html</link>
    		<pubDate><?=$row['tarihx']?> +0300</pubDate>
    		<category><![CDATA[<?=$row['kategori']?>]]></category>
    		<title><![CDATA[<?=$row['baslik']?>]]></title>
    		<description><![CDATA[<?=$row['spot']?>]]></description>
    		<yandex:full-text><![CDATA[<?=$row['detay']?>]]></yandex:full-text>
    		<yandex:related>
    		<link url="<?=$ayar['url'].$row['hta']."-h".$row['id']?>.html"><?=tirnaksil($row['baslik'],false)?></link>
    		</yandex:related>
    
    
    	</item>
    
    	<? } } ?>
    
    	</channel>
    </rss>
    
    
    <?php
    
    
    function temizlik_SM($s) {
    
    	$bul      = array("&", "<", ">", "'", "\"", "&amp;#39;", "’", "–");
    	$degistir = array("&amp;", "&lt;", "&gt;", "", "&quot;", "", "", "");
    
    	return str_replace($bul,$degistir,$s);
    
    }
    
    
    
    file_put_contents($cachefile, ob_get_contents());
    ob_end_flush();
    Ustalar bir el atın size zahmet...


    hocam header() fonksiyonundan önceki tanımlamalar vs, ekrana yazı basmalar falan header fonksiyonunu geçersiz kılar. $resim_goster = TRUE; bunu bi header fonksiyonunun altında tanımlayın. birde yazı göstereceğiniz yerlerde <![CDATA[ yazı buraya gelecek ]]> şeklinde kullanın.

    iyi çalışmalar
  • 27-08-2014, 23:53:39
    #3
    function temizlik_SM($s) { 
    
        $bul      = array("&", "<", ">", "'", "\"", "&amp;#39;", "’", "–"); 
        $degistir = array("&amp;", "&lt;", "&gt;", "", "&quot;", "", "", ""); 
    
        return str_replace($bul,$degistir,$s); 
    
    }
    fonksiyonunuzda &amp;#39; kısmını &amp;#039; olarak düzeltin. Gözünüzden kaçmış sanırım
  • 28-08-2014, 01:55:50
    #4
    Üyeliği durduruldu
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    hocam header() fonksiyonundan önceki tanımlamalar vs, ekrana yazı basmalar falan header fonksiyonunu geçersiz kılar. $resim_goster = TRUE; bunu bi header fonksiyonunun altında tanımlayın. birde yazı göstereceğiniz yerlerde <![CDATA[ yazı buraya gelecek ]]> şeklinde kullanın.

    iyi çalışmalar
    Hocam bu olmadı daha da bozuldu..

    Misafir adlı üyeden alıntı: mesajı görüntüle
    function temizlik_SM($s) { 
    
        $bul      = array("&", "<", ">", "'", "\"", "&amp;#39;", "’", "–"); 
        $degistir = array("&amp;", "&lt;", "&gt;", "", "&quot;", "", "", ""); 
    
        return str_replace($bul,$degistir,$s); 
    
    }
    fonksiyonunuzda &amp;#39; kısmını &amp;#039; olarak düzeltin. Gözünüzden kaçmış sanırım
    PHP den pek anlamıyorum sorun orda Bazı yazılar düzeldi ama helen bozuk çıkan başlıklar var anlayamadım. Şu şekil mesela: Türkiye&amp;#39;de
  • 28-08-2014, 11:23:14
    #5
    TURAN40 adlı üyeden alıntı: mesajı görüntüle
    PHP den pek anlamıyorum sorun orda Bazı yazılar düzeldi ama helen bozuk çıkan başlıklar var anlayamadım. Şu şekil mesela: Türkiye&amp;#39;de


    function temizlik_SM($s) { 
    
        $bul      = array("&", "<", ">", "'", "\"", "&amp;#39;", "’", "–"); 
        $degistir = array("&amp;", "&lt;", "&gt;", "", "&quot;", "", "", ""); 
    
        return str_replace($bul,$degistir,$s); 
    
    }
    Fonksiyonunu aşağıdaki ile değiştirip tekrar deneyin hocam.

    function temizlik_SM($s) { 
    
        $bul      = array("&", "<", ">", "'", "\"", "&amp;#039;", "&amp;#39;", "’", "–"); 
        $degistir = array("&amp;", "&lt;", "&gt;", "", "&quot;", "", "", "", ""); 
    
        return str_replace($bul,$degistir,$s); 
    
    }
    Bu fonksiyonun amacı, bir yazıda $bul dizisi içindekileri $degistir dizisinin içindekilerle birebir değiştirmek. Bozuk çıkan başlıklardaki o bozan kısmı yukarıdaki gibi boşlukla veya html dilindeki karşılığıyla değiştirebilirsiniz. Kolay gelsin.
    • TURAN40
    TURAN40 bunu beğendi.
    1 kişi bunu beğendi.
  • 28-08-2014, 11:51:41
    #6
    Üyeliği durduruldu
    Misafir adlı üyeden alıntı: mesajı görüntüle
    function temizlik_SM($s) { 
    
        $bul      = array("&", "<", ">", "'", "\"", "&amp;#39;", "’", "–"); 
        $degistir = array("&amp;", "&lt;", "&gt;", "", "&quot;", "", "", ""); 
    
        return str_replace($bul,$degistir,$s); 
    
    }
    Fonksiyonunu aşağıdaki ile değiştirip tekrar deneyin hocam.

    function temizlik_SM($s) { 
    
        $bul      = array("&", "<", ">", "'", "\"", "&amp;#039;", "&amp;#39;", "’", "–"); 
        $degistir = array("&amp;", "&lt;", "&gt;", "", "&quot;", "", "", "", ""); 
    
        return str_replace($bul,$degistir,$s); 
    
    }
    Bu fonksiyonun amacı, bir yazıda $bul dizisi içindekileri $degistir dizisinin içindekilerle birebir değiştirmek. Bozuk çıkan başlıklardaki o bozan kısmı yukarıdaki gibi boşlukla veya html dilindeki karşılığıyla değiştirebilirsiniz. Kolay gelsin.
    Hallettim kardeşim sağolasın teşekkürler.