Cei care lucrați în domeniul web cunoașteți foarte bine sentimentele de mânie, frustrare și ură - trăite pe rând, sau toate o dată - ce apar în momentul în care deschideți un IE6 pentru a testa un site proaspăt terminat.

Ultima problemă legată de IE6 ține de afișarea incorectă a diacriticelor cu virgulă. Problema asta îmi era practic necunoscută acum vreo 6 luni de zile, deoarece layout-urile tastaturilor românești conțineau diactitice cu sedilă (pe linux, cel puțin). Diferența?

Layout nou: ș, Ș, ț, Ț (afișat incorect)

Layout vechi: ş, Ş, ţ, Ţ (afișat corect)

Aici pe blog puțin îmi pasă dacă mai sunt oameni navigând cu IE6 care nu văd textul corect. Însă pe alte site-uri îmi pasă, pentru că fiecare utilizator poate deveni client. Prin urmare, a trebuit să caut o soluție.

Fiind vorba de un site scris în PHP, soluția a ieșit imediat la iveală și se bazează pe funcționalitatea de output buffering despre care am mai scris aici.

Și acum, codul responsabil cu afișarea diacriticilor cu sedilă în locul celor cu virgulă (doar pentru IE6):

[code lang="php"]function inlocuireDiacritice($buffer){

  $cuVirgula = array("ș", "Ș", "ț", "Ț");

  $cuSedila = array("ş", "Ş", "ţ", "Ţ");

  return str_replace($cuVirgula, $cuSedila, $buffer);

}

function browserIE6(){

  return strpos($_SERVER["HTTP_USER_AGENT"], "MSIE 6");

}

if (browserIE6()){

  ob_start("inlocuireDiacritice");

}else{

  ob_start();

}
...
ob_end_flush();
[/code]