• 09-01-2010, 00:47:57
    #1
    merhaba arkadaşlar aşağıdaki php kodla veridabanından çektiğim verileri yazdırıyorum.

    Dil kodlaması ( windows-1254 veya iso-8859-9 ) olduğu zaman sorunsuz bir şekilde tarayıcıda açabiliyorum fakat karekterseti UTF-8 olduğu zaman tarayıcı sayfayı okumuyor ve aşağıdakileri yazdırıyor.

    Anladığım kadarıyla tr karekter sorunu veriyor ama ftp den xml dosyasını incelediğim zaman karekterler düzgün görünüyor.

    Ama bana çalışan utf-8 olan şekli lazım, çünkü diğer karekter setleri olduğunda flash karekterleri bozuk gösteriyor.

    Bu konu hakkında bilgisi olanlar yardımcı olursa çok makbule geçer şimdiden teşekkürler..


    XML sayfası görüntülenemiyor 
    XML girişi XSL stil sayfası kullanılarak görüntülenemez. Lütfen hatayı düzeltin ve Yinele düğmesini tıklatın veya daha sonra yeniden deneyin. 
    
    
    Metin içeriğinde geçersiz karakter bulundu. 'xxxxxxxxxxxx/S_cache/video_gallery.xml' kaynağı işlenirken...
    
    <?xml version="1.0" encoding="UTF-8"?><gallery><item><image>images/video/3ea341111_5.jpg</image&g...


    <?php
    include("SYSTEM_config.php");
    $dosya_adi = 'S_cache/video_gallery.xml';  // Oluşturulacak Dosya Adı
    $xml_output .=  '<?xml version="1.0" encoding="UTF-8"?>';
    $xml_output .=  '<gallery>';
    
    
    $sql = mysql_query("SELECT * FROM video ORDER BY id DESC", $baglanti) or die("Sorgu hatasi olustu !");
    $row_sql = mysql_fetch_assoc($sql);
    do 
    {
    $xml_output .=  '<item>';
    $xml_output .=  '<image>'.$row_sql['image_big'].'</image>';
    $xml_output .=  '<title><![CDATA['.$row_sql['title'].']]></title>';
    $xml_output .=  '<link>video.php?id='.$row_sql['id'].'</link>';
    $xml_output .=  '</item>';
    } 
    while($row_sql = mysql_fetch_assoc($sql));
    $xml_output .=  '</gallery>';
    
    $yaz=fopen($dosya_adi, "w"); //en başta belirlediğimiz isimde bir dosya yaratıyoruz.
    fwrite($yaz,$xml_output);   //veritabanından gelen bilgileri açtığımız dosyaya yazdırıyoruz.
    fclose($yaz);   //yazma işlemini kapatıyoruz.
    ?>
  • 09-01-2010, 00:58:02
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Hocam olur mu bilmiyorum ama <?php tagından sonra header("Content-Type: text/xml; charset=utf-8"); yazarak dener misiniz ?
  • 09-01-2010, 01:10:50
    #3
    evet buki arkadaşın dediği header ı eklemelesin ve de & işarete replace oluşturmalısın sayfa oluşturulsa bile browserlar okumaz
  • 09-01-2010, 09:17:48
    #4
    üstad dediğinizi yaptım ama bu kez hem xml dosyasını oluşturmadı hemde aşağıdaki hatayı verdi...

    XML sayfası görüntülenemiyor 
    XML girişi stil sayfası kullanılarak görüntülenemez. Lütfen hatayı düzeltin ve Yinele düğmesini tıklatın veya daha sonra yeniden deneyin. 
    
    XML belgesinin üst düzey öğesi olmalıdır. 'xxxxxxxxx/video_gallery.xml.php' kaynağı işlenirken hata...

    _BuKi_ adlı üyeden alıntı: mesajı görüntüle
    Hocam olur mu bilmiyorum ama <?php tagından sonra header("Content-Type: text/xml; charset=utf-8"); yazarak dener misiniz ?
  • 09-01-2010, 09:53:45
    #5
    Üyeliği durduruldu
    şu satırı;
    $xml_output .=  '<title><![CDATA['.$row_sql['title'].']]></title>';
    şununla değiştirin;
    $xml_output .=  '<title><![CDATA['.preg_replace('^[&\'><#]^', '', $row_sql['title']).']]></title>';
  • 09-01-2010, 10:08:12
    #6
    mahlesef hocam bir değişiklik olmadı. 'S_cache/video_gallery.xml' dosyasını oluşturuyor browser okumuyor...

    devturkeli adlı üyeden alıntı: mesajı görüntüle
    şu satırı;
    $xml_output .=  '<title><![CDATA['.$row_sql['title'].']]></title>';
    şununla değiştirin;
    $xml_output .=  '<title><![CDATA['.preg_replace('^[&\'><#]^', '', $row_sql['title']).']]></title>';
  • 09-01-2010, 21:46:06
    #7
    Üyeliği durduruldu
    metin ifade içerisindeki <> gibi karakterlerden escape etmeniz gerekiyor.htmlspecialchars da kullanabilirsiniz
  • 10-01-2010, 15:30:52
    #8
    arkadaşlar sorun sdemirkeserin söylediği .htmlspecialchars olayı değil karekterler kml de düzgün çıkıyor ama browser okumuyor dil kodlaması UÜF-8 olduğu zaman... oluşan xml dosyasını notepad programıyla açtığımdı (ANSI) olarak farklı kaydet diyip dil kodlamasını UTF-8 olarak kaydettiğimde sorunsuz çalışıor. ama benim derdim xml dosyanın UTF-8 olarak oluşturması....


    <?php
    
    include("SYSTEM_config.php");
    $dosya_adi = 'S_cache/video_gallery.xml';  // Oluşturulacak Dosya Adı
    $xml_output .=  '<?xml version="1.0" encoding="UTF-8"?>';
    $xml_output .=  '<gallery>';
    
    
    $sql = mysql_query("SELECT * FROM video ORDER BY id DESC", $baglanti) or die("Sorgu hatasi olustu !");
    $row_sql = mysql_fetch_assoc($sql);
    do 
    {
    $baslik=htmlspecialchars_decode($row_sql['title']);
    
    $xml_output .=  '<item>';
    $xml_output .=  '<image>'.$row_sql['image_big'].'</image>';
    
    
    $xml_output .=  '<title><![CDATA['.$baslik.']]></title>';  
    
    
    $xml_output .=  '<link>video.php?id='.$row_sql['id'].'</link>';
    $xml_output .=  '</item>';
    } 
    
    
    while($row_sql = mysql_fetch_assoc($sql));
    $xml_output .=  '</gallery>';
    
    $yaz=fopen($dosya_adi, "w"); //en başta belirlediğimiz isimde bir dosya yaratıyoruz.
    fwrite($yaz,$xml_output);   //veritabanından gelen bilgileri açtığımız dosyaya yazdırıyoruz.
    fclose($yaz);   //yazma işlemini kapatıyoruz.
    ?>
  • 10-01-2010, 15:59:35
    #9
    medesan adlı üyeden alıntı: mesajı görüntüle
    arkadaşlar sorun sdemirkeserin söylediği .htmlspecialchars olayı değil karekterler kml de düzgün çıkıyor ama browser okumuyor dil kodlaması UÜF-8 olduğu zaman... oluşan xml dosyasını notepad programıyla açtığımdı (ANSI) olarak farklı kaydet diyip dil kodlamasını UTF-8 olarak kaydettiğimde sorunsuz çalışıor. ama benim derdim xml dosyanın UTF-8 olarak oluşturması....
    hocam dediğiniz şey için header("Content-Type: text/xml; charset=utf-8"); bunun işe yaraması gerekiyor ama olmadı demişsiniz. Bende de olmuştu böyle bir sorun bu şekilde halletmiştim.