Html_entity_decode ile çözme ve daha sonra problem yaşıyorsanız

3 Cevap

Html_entity_decode fonksiyonu ile özel karakter   çözme sonra,   varlıklar yerine boşluk olsun. Benim sorun, $decoded_str[5] kodlaması   bir boşluk olsa if ($decoded_str[5] == ' ') Bu doğru değil, eğer ben kontrol durumdur. Meseleyi halletmek için? Ben bunu kontrol etmek gerekiyor, bu yol gibi: if ($decoded_str[5] == ' ')

3 Cevap

nbsp 0XA0 bir karakter kodu vardır ve uzay 0x20.

Şifrelemenizden bağlı olarak, (ISO-8859-1 / default) karşılaştırmak gerekebilir

if ($decoded_str[5] === '\xa0')

veya (UTF-8)

if ($decoded_str[5] === '\xc2' && $decoded_str[6] === '\xa0')

Kılavuzuna itibaren html_entity_decode :

' ' varlık tarafından soyulduğu (ASCII kodu 32 değil çünkü trim(html_entity_decode(' ')); boş bir dizeye dize azaltmaz neden Note: merak ediyor olabilirsiniz, o trim()), ancak varsayılan ISO 8859-1 characterSet ASCII kodu 160 (0xa0).

  bir space değil çünkü bu: bir Non-breaking space bulunuyor.

Bu karakter kodu 0x20 değil demektir, ama 0xA0 (well, of course, this depends on the charset, I suppose...)

o html_entity_decode da geçerli tüm html karakterleri dönüştürür, böylece çünkü, doğru davranış ve böylece eğer bu kullanarak alanını kontrol edebilir ..

if (htmlentities($dec) == ' ')

hangi temelde dize özgün değeri ile karşılaştırma ...