Php xml okuma

Merhaba sistemler arası veri akatarımlarında hala en yaygın kullanılan yöntemlerden birisi de xml ile veri aktarımıdır. Stok güncelleme, güncel fiyatları alma, ürün güncelleme gibi birçok süreçte
yazılımcı arkadaşların karşısına çıkan bir süreçtir.

Bu yazımızda php ile xml okuma konusuna değineceğiz.

Devamı

aşağıdaki gibi bir xml yapımız olduğunu varsayalım.

“< ?xml version='1.0'?> HYN-73737-11
Hyundai
0
Test ProductName-1 225.4318
HYN-73737-12
Dacia
3
Test ProductName-1 2354.457
HYN-73737-13
Dacia
3
Test ProductName-1 2354.457

php ile bu dosyayı okuyabilmek için;

header(“Content-Type: text/html; charset=utf8”);
$xml=simplexml_load_file(“http://xmlyolu”);
$rowNo=0;
foreach ($xml->Product $urun) {
$rowNo++;
echo $rowNo.’ ‘;
echo $stokKodu=$urun->StockCode.’
‘;

}

örnek kodu ile xml dosyamızı okuyabiliriz. Buradaki önemli olan nokta “$xml->Product” kısmı xml ağacınızdaki kırılıma göre ve xml den okumak istediğiniz verilere göre bu kısmı
düzenlemeniz gerekir.

faydalı olması dileğiyle.

Php mb_convert_encoding fonksiyonu ve türkçe karakter düzeltme

Projelerde özellikle farklı dosya tiplerinden (excel, csv) veri okuyup yazdığımız veya farklı veritabanından veri aktarırken sık karşılaşılan problemlerden birisi de Türkçe karakter hatasıdır.
Bunun birçok çözüm yolu mevcuttur, eğer veritabından çektiğiniz verilerde türkçe karakter sorunu yaşıyorsanız mysql bağlantınıza charset set etmek, php dosyanıza header content-type eklemek bunlardan bazılarıdır. Ancak zaman olur ki herşey yapılmışken hala bazı verilerinizde türkçe karakterler bozuk gözükür buna örnek olarak “ş” karfi düzgün gözükürken “Ö” harfi hatalı karakter olarak gelebilmektedir.
Devamı

Burada geriye verilerimizi ayrıştırdıktan sonra değişken olarak kontrol sağlamak kalıyor ve yardımımıza “mb_convert_encoding” fonkisyonu yetişiyor.

Bu fonksiyonun görevi önceden kodlaması bilinen veya bilinmeyen bir değişkeni sizin belirlediğiniz karakter setine çevirme.

Kullanımı: (Gelen değişkenin kodlamasını biliyorsak)

$iyiKod= mb_convert_encoding($kotuKod, “UTF-8”, “ISO-8859-1”);

Kullanımı: (Gelen değişkenin kodlamasını bilmiyorsak)

$iyiKod= mb_convert_encoding($kotuKod, “UTF-8”, “auto”);