Soru - Cevap Bölümü
/ Kategori: Programlama
08/06/2008 - 22:17:25 cevap (2) Okunma : 562 Bu yazıyı 1 kişi tuttu.
php nin simple xml sınıfı ile utf-8 xml dosyası okumak
merhaba
arkadaslar 2 gündür deniyorum php ile utf-8 formatlı xml dosyası okuyamadım. kullandıgım xml yapısı:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<k>
<aciklama><![CDATA[ıIğĞüÜşŞiİöÖçÇ]]></aciklama>
<degisken><![CDATA[ıIğĞüÜşŞiİöÖçÇ]]></degisken>
<deger><![CDATA[ıIğĞüÜşŞ <b>iİöÖçÇ</b> ]]></deger>
</k>
<data>
CDATA kısmında html saklamam gerekiyor ve turkce karakterler de olucak onedenle utf-8 kullanmak istedim.
tesekkürler kolaygelsin..<<
Cevaplar
( Faydalı Cevapları Göster )
merhaba ilgin için çok tesekkürler
sorun tamamen ben kaynaklı imiş başlıgı degiştiriyorum.
yapmaya çalıştıgım şey XML içerik yönetimi : bir XML dosyasın daki açıklama degisken ve deger alanlarını php ile form haline çevirip içerik kısmını text editor ile html taglarla biçimlendirip tekrar xml olarak kayıt etmekti.
benim hatam form post edildigin de form bilgilerinin php tarafından biçimlendirilmesini görmemek
bugun fark ettimki çif tırnakların önüne "\" işareti eklenmis sanıyorum ki addslashes() ile biçimlendiril mis gibi
bende xml yazmadan önce stripslashes() uygulayarak form verisini normal hale getirip xml yazdım.
anladım ki php kitabımı okuma zamanım gelmis :)
xml okuyan ve form oluşturan kodlarım:
<form id="form1" name="form1" method="post" action="kaydet.php">
<div id="root">
<?php
$xmlData = simplexml_load_file("data.xml");
for( $i=0; $i<count($xmlData->k); $i++ ){
$v = $xmlData->k[$i]
?>
<div class="kab">
<input name="aciklama_<?=$i?>" type="text" value="<?=$v->aciklama?>" />
<input name="degisken_<?=$i?>" type="text" value="<?=$v->degisken?>"/>
<textarea name="deger_<?=$i?>" class="textarea"><?=$v->deger?><textarea>
</div>
<?
}
?>
</div>
<input type="hidden" name="adet" value="<?=$i?>"/>
</form>
post edilen datayı xml kaydeden kodlarım:
<?
$veri .= '<?xml version="1.0" encoding="UTF-8"?>
<data>';
for( $i=0; $i < $_POST['adet']; $i++ ){
$veri .= '
<k>
<aciklama><![CDATA['.$_POST['aciklama_'.$i].']]></aciklama>
<degisken><![CDATA['.$_POST['degisken_'.$i].']]></degisken>
<deger><![CDATA['.$_POST['deger_'.$i].']]></deger>
</k>';
}
$veri .= '</data>';
$veri = stripslashes( $veri );
$file = "data.xml";
$fileOpen = fopen($file, 'w');
fwrite($fileOpen, $veri);
fclose($fileOpen);
?>
ilginiz için tekrar çok tesekkürler
kolaygelsin..<<
MMIstanbul Adobe UG
ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, iNdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfterEffects, Resmi Adobe Kullanıcı Grubu.
Etkinlikler
Fuar
CeBIT 2008 Bilişim Eurasia 7 - 12 Ekim 2008' de
CeBIT 2008 Bilişim Eurasia 7 - 12 Ekim 2008' de
CeBIT Bilişim Eurasia bu yıl 7 – 12 Ekim tarihlerinde düzenleniyor
Adını dünyanın en büyük on fuarı arasına yazdırarak, İstanbul’u Avrasy...
Kategori: Fuar
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız




Utf-8 kullanman için özel bir şey yapmana gerek yok aslında. Tam olarak bilememekle birlikte xml dosyasını okuyan dosyanın en üst satırına
şeklinde bir ekleme yapıp denersen sorunun çözülmesi lazım. Eğer çözülmez ise dosya okumakta kullandığın kodları gönderirsen çözüm bulmaya çalışırız. Kolay gelsin.