Tarayıcı Tüm XML dosya okuma değil

3 Cevap php

Ben bir PHP komut dosyası tarafından yazılmış bir XML dosyası var. XML dosyası için veri çeşitli RSS beslemeleri toplanır. PHP komut dosyası bir Cron Job tarafından her 5 dakikada çağrılır. PHP Script XML dosyasını yazmak için belki 5-10 saniye sürer.

İşte sorun: XML dosyası yazıldıktan sonra, ben DreamWeaver aracılığıyla açık ve gayet her şeyi okuyabilirsiniz - ama benim Web Browser (IE veya Firefox) içine XML dosyası URL'sini girin, ben bir "XML Ayrıştırma Hatası olsun: yok Tarayıcıda iyi biçimlendirilmiş "Hata. Ben Tarayıcıda Görünüm> Kaynak yaptığınızda, XML dosyası eksik görünür - ama sunucuya doğrudan kapalı dosyayı açtığınızda, tamamlandı.

Herkes burada ne oluyor biliyor musun?

3 Cevap

Cevap RSS beslemeleri menşeli gelen kodlama ile uğraşan sona erdi. Kaynaklı yemler ISO-8859-1 kullanılarak kodlanan, ve bu benim XML dosyasına veri yazmadan önce UTF-8 dönüştürülmesi gerekiyordu.

//Get Data from source URL
$xml = file_get_contents("http://www.sourceurl.com/someting.rss");
//Convert from ISO to UTF
$xml = mb_convert_encoding($xml, 'UTF-8', mb_detect_encoding($xml, 'UTF-8, ISO-8859-1', true)); 

Bu yapıldıktan sonra, ancak ben ihtiyacım $ xml geçerken ve benim kişisel XML dosyasına veri yazabilir. Görünüşe göre bazı charactersin benim XML dosyasına yazılmadan önce doğru yorumlanır değil ISO-8895-1 kodlama vardır.

Peki, could XML web sunucusu başlıklarını belirten birine farklı bir kodlama olduğunu olabilir. Bu karmaşa şeyleri yapamadım.

Sana Wireshark veri actually doğru teslim ediliyor olup olmadığını görmek için kullanmanızı öneririz. Ayrıca web sunucusu belirten bir karşı, XML belgenin kendisi ve içeriği kodlaması bakmak.

Eğer tarayıcı bir "Save As ..." yapmak ve sonucu açmaya ne olur? Bu iyi başlıklarında belirtilen içerik kodlaması görmezden ve sadece dosyayı diske dökümü olabilir - eğer haklıysam, o zaman bir XML editörü doğru açılmalıdır.

Bu xml dosyasının kopyala / yapıştır için yardımcı olabilir.

Ben Dreamweaver gerçekten xml olmayan bir xml dosyası bir şey (bir varlık veya bir xml-saklıdır karakteri ile ilgili bir sorun) olarak ya da bir kodlama sorunu olduğunu kabul ettiğini sanıyorum. Eğer ASCII 127 karakter seti dışında karakter var mı?

Jerome Wagner