PHP: bezogonkowo, czyli UTF-8 do plain-ASCII

marzec 23rd, 2009. Brak komentarzy.
Kategorie: PHP, Zabawy z kodem.

Wrzucam to teraz, bo później mógłbym zapomnieć. Na grupie pl.comp.lang.php pojawiło się pytanie, jak zamienić polski tekst z polskimi ogonkami w standardzie UTF-8 na “zwykły” tekst, bez PLiterek.
Jak zwykle w takich przypadkach, pojawiła się odpowiedź, a ja, wzorem pracownika urzędu patentowego, palnąłem się w głowę, powtarzając “czemu ja tego nie napisałem wcześniej…”.

Użytkownik o nicku Exe Very Cute w odpowiedzi podał bardzo prosty kod, który może się przydać:

function foo($s)
{
  $data = array(
    "\xc4\x85" => "a", "\xc4\x84" => "A", "\xc4\x87" => "c", "\xc4\x86" => "C",
    "\xc4\x99" => "e", "\xc4\x98" => "E", "\xc5\x82" => "l", "\xc5\x81" => "L",
    "\xc3\xb3" => "o", "\xc3\x93" => "O", "\xc5\x9b" => "s", "\xc5\x9a" => "S",
    "\xc5\xbc" => "z", "\xc5\xbb" => "Z", "\xc5\xba" => "z", "\xc5\xb9" => "Z",
    "\xc5\x84" => "n", "\xc5\x83" => "N");
  return strtr($s, $data);
}

Skomentuj: