Farklı bir ortamda XML ayrıştırıcı farklı sonucu, NEDEN?

2 Cevap php
<?php
$xml = <<< AAA
<test>c đưa lên 1 -&gt; 10 k</test>
AAA;
$p = xml_parser_create();
xml_parse_into_struct($p, $xml, $vals, $index);
xml_parser_free($p);
print_r($vals);

I can get differnt result why? In my PC the result is

Array
(
    [0] => Array
        (
            [tag] => TEST
            [type] => complete
            [level] => 1
            [value] => c đưa lên 1 -> 10 k
        )

)

Procuction ortamında, resut olduğu

Array
(
    [0] => Array
        (
            [tag] => TEST
            [type] => complete
            [level] => 1
            [value] => c đưa lên 1 - 10 k
        )

)

The > is disappear. Why?

2 Cevap

Eğer ortamlara geçiş Bazen, metin kodlama ve diğer internationlization ilgili FRİKİKLERİNDEN ilgili bazı farklılıklar göreceksiniz. Yani xml_parser_create fonksiyonunda bir kodlama ayarı açıkça deneyebilirsiniz.

Başka bir şey düşünmek PHP sürümleri. Her iki ortamlardan phpinfo() çalıştırın ve orada sürümlerini denetleyin. Bu üretim kullanarak PHP sürümü HTML varlıkları (>) görmezden kodlanmış olabilir ... Sadece bir tahmin.

EDIT:
According to this bug report, this behavior of ignoring HTML entities can be cause by libxml2. Try updating libxml2 on the production server to the latest version.

Bir kodlama sorun gibi görünüyor.