etil alkol rp satın al
chat eczaonline.com

Php ile çekilen verilerde türkçe karakter problemi?

atay

Müptela
Katılım
29 Eki 2005
Mesajlar
3,592
Beğeniler
37
#1
php ile rss çekmeyi ilk defa kullanıyorum. sitenin ufak bir bölümü olduğu için hızlıca geçmek amacıyla hazır bir script kullandım fakat türkçe karakterler bozuk çıkıyor. ne gibi bir değişiklik yapmalıyım fikri olan var mı?

PHP:
<?
				set_time_limit(0);

$file = "http://www.sinemalar.com/feed/salon.php?salon=460";

$rss_channel = array();
$currently_writing = "";

$main = "";

$item_counter = 0;

function startElement($parser, $name, $attrs) {

global $rss_channel, $currently_writing, $main;

switch($name) {

case "RSS":

case "RDF:RDF":

case "ITEMS":

$currently_writing = "";

break;

case "CHANNEL":

$main = "CHANNEL";

break;

case "IMAGE":

$main = "IMAGE";

$rss_channel["IMAGE"] = array();

break;

case "ITEM":

$main = "ITEMS";

break;

default:

$currently_writing = $name;

break;

}

}

function endElement($parser, $name) {

global $rss_channel, $currently_writing, $item_counter;

$currently_writing = "";

if ($name == "ITEM") {

$item_counter++;

}

}

function characterData($parser, $data) {

global $rss_channel, $currently_writing, $main, $item_counter;

if ($currently_writing != "") {

switch($main) {

case "CHANNEL":

if (isset($rss_channel[$currently_writing])) {

$rss_channel[$currently_writing] .= $data;

} else {

$rss_channel[$currently_writing] = $data;

}

break;

case "IMAGE":

if (isset($rss_channel[$main][$currently_writing])) {

$rss_channel[$main][$currently_writing] .= $data;

} else {

$rss_channel[$main][$currently_writing] = $data;

}

break;

case "ITEMS":

if (isset($rss_channel[$main][$item_counter][$currently_writing])) {

$rss_channel[$main][$item_counter][$currently_writing] .= $data;

} else {

//print ("rss_channel[$main][$item_counter][$currently_writing] = $data<br>");

$rss_channel[$main][$item_counter][$currently_writing] = $data;

}

break;

}

}

}

$xml_parser = xml_parser_create();

xml_set_element_handler($xml_parser, "startElement", "endElement");

xml_set_character_data_handler($xml_parser, "characterData");

if (!($fp = fopen($file, "r"))) {

die("could not open XML input");

}

while ($data = fread($fp, 4096)) {

if (!xml_parse($xml_parser, $data, feof($fp))) {

die(sprintf("XML error: %s at line %d",

xml_error_string(xml_get_error_code($xml_parser)),  

xml_get_current_line_number($xml_parser)));

}

}

xml_parser_free($xml_parser);

// output as HTML

if (isset($rss_channel["IMAGE"])) {

print ("");

} else {

print ("");

}

print ("");

if (isset($rss_channel["ITEMS"])) {

if (count($rss_channel["ITEMS"]) > 0) {

for($i = 0;$i < count($rss_channel["ITEMS"]);$i++) {

$yazilacak= ("\n<table width=\"100%\" border=\"1\"><tr><td width=\"100%\"><a href=\"" . $rss_channel["ITEMS"][$i]["LINK"] . "\" target=\"_blank\"><h3>" . $rss_channel["ITEMS"][$i]["TITLE"] . "</h2></a></b>");

$yazilacak.= ("<i>" . html_entity_decode($rss_channel["ITEMS"][$i]["DESCRIPTION"]) . "</i>");

$yazilacak.= ("</td></tr></table><br>");

$yazilacak = ereg_replace('src="', 'src="http://www.sinemalar.com/',$yazilacak);

echo $yazilacak;

}

} else {

print ("<b>There are no articles in this feed.</b>");

}

}
?>
 
Katılım
28 Şub 2006
Mesajlar
1,287
Beğeniler
1
Konum
burdan yak
#2
Bu kodlarının olduğu sayfanın en başına charset tagi kullan ve charseti utf8 yap:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 

OnurSQL

Müptela
Katılım
29 Mar 2005
Mesajlar
2,025
Beğeniler
1
Konum
ankara
#3
http://simplepie.org/downloads/

Simplepie sınıfını tavsiye ederim. Ben kullanıyorum, karakter problemi ile karşılaşmadım.

http://simplepie.org/wiki/

Örnek

PHP:
<?php
	set_time_limit(0);
	/*
	require_once 'veritabani/ez_sql_core.php';
	require_once 'veritabani/ez_sql_mysql.php';
	*/
	baglan(); // veritabani bağlantısı
    require_once 'simplepie.php';
    $feed = new SimplePie();
	$al = $db->get_results("SELECT rssurl, kat_id, id FROM rssadresleri WHERE durum=1"); // rss adresleri
	foreach($al as $cek) {		
    $feed->set_feed_url($cek->rssurl);
    $feed->init();
    $feed->handle_content_type();
    $limit = $feed->get_item_quantity(100); // Toplam çekilecek rss çıktısı
	
	for($i=0; $i<$limit; ++$i)
	{

        $item = $feed->get_item($i);
        $y = $db->get_var("SELECT COUNT(adres) FROM icerik WHERE adres='".$item->get_permalink()."'");
		if($y == 0) {
		$db->query("INSERT INTO icerik 
					(id, baslik, baslikseo, aciklama, adres, zaman, rss_id, kat_id)
					 VALUES
					 (lisanssız, 
					 '".mysql_real_escape_string($item->get_title())."',
					 '".mysql_real_escape_string(turkce($item->get_title()))."',
					 '".mysql_real_escape_string(strip_tags($item->get_description()))."',
					 '".mysql_real_escape_string($item->get_permalink())."',
					 now(),
					 '".$cek->id."',
					 '".$cek->kat_id."'
					 )");
					sleep(1);
					 }

				   }
	}
?>
 

Bu konuyu okuyanlar (Üyeler: 1, Misafirler: 0)

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur. iyinet.com sayfalarında yer alan yazı, görsel ve linklerle ilgili hukuki şikayetleriniz için Buradan iletişime geçmeniz durumunda, ilgili kanunlar ve yönetmelikler çerçevesinde en geç 7 gün içerisinde iyinet yönetimince tarafınıza dönüş sağlanacaktır. Betcup porno Artemisbet Forum canlı bahis sohbet - - chat
Üst