XML ayrıştırıcı hatası: varlık tanımlı değil

0 Cevap php

Ben bu sorun üzerinde stackoverflow aradı ve bir kaç konu buldum, ama bu benim için sağlam bir cevap gerçekten yok gibi hissediyorum.

Ben kullanıcılara göndermek ve alanın değeri bir XML dosyasında saklanan bir form var. XML UTF-8 ile kodlanmış olarak ayarlanır.

Her şimdi ve sonra bir kullanıcı bir yerden / yapıştır metin kopyalamak ve ben "varlık tanımlı değil hatası" olsun o.

Dolayısıyla ayrıştırıcı hatası - Ben XML sadece bir kaç varlıkları ve bunun ötesinde bir şey kabul edilmez destekler biliyoruz.

Anladığım kadarıyla, ben gördüm bir kaç seçenek var:

  1. Ben bulmak ve tüm   olarak değiştirin ve   ya da gerçek bir boşluk ile takas olabilir.
  2. Ben bir CDATA bölümü içinde söz kodu yerleştirebilirsiniz.
  3. Ben XML dosyası içinde bu varlıkları içerebilir.

Ne XML dosyası ile yapıyorum kullanıcı form içine içerik girebilirsiniz ki, bu bir XML dosyasında depolanır ve bu içerik daha sonra (SimpleXML ile çözümlenen) bir Web sayfasında XHTML olarak görüntülenir alır.

Gerçekten bu kişiler ile başa çıkmak için en iyi yolu nedir ben farkında değilim üç seçenek, ya da herhangi başka bir seçenek (ler) in?

Thanks, Ryan

UPDATE

Ben büyük geribildirim için herkese teşekkür etmek istiyorum. Aslında benim varlık hataları neden ne belirlenir. Tüm önerileri beni daha derinden içine bakmak yaptı!

Düz eski metin kutularının, ama benim textareas TinyMCE ile geliştirilmiş olan bazı metin kutularının. PHP uyarılar her zaman TinyMCE gelişmiş textareas verileri başvurulan, bir yakından göz alarak iken, çıkıyor. Daha sonra (bunları okumak değil çünkü) tüm karakterler alındı ​​PC'de fark, ama bir MAC o karakterin unicode numarası başvurarak küçük kare kutular görebiliyordu. Ben (nedense de TinyMCE ile ilgili) diğer ayrıştırma hataları önlemek için UTF değildi veri kodlamak için kullanılan utf8_encode çünkü ilk etapta bir MAC meydanlarda geldi nedenidir.

Bütün bu çözüm oldukça basit oldu:

Benim tinyMCE.init bu satırı entity_encoding : "utf-8" eklendi. Şimdi, bütün karakterler gerekiyor yol göstermek.

Ben kutularının yerleştirildiği zaman hiçbir şey UTF onları dönüştürür çünkü karakterler hala, sırıtmak neden anlamıyorum tek şey sanırım, ama TinyMCE ile bir sorun oldu.

0 Cevap