PHP - cestina v RE

Michal Chocholac mch na vosis.cz
Středa Únor 6 12:06:18 CET 2002


Jenom doplním, že při správně nastavených (systémových) locales třída
znaků [:alpha:] funguje. Ovšem eregi() pořád ne (viz. priklad)...

<example>
<?php
   SetLocale("LC_ALL","Czech");

   $str = 'Michal Chocholáč Ďťěščřžýáíé';
   $patts[] = "láč";
   $patts[] = "Láč";
   $patts[] = "lÁč";
   $count_patts = count($patts);

   if (ereg("[[:alpha:][:space:]]*", $str)) {
      echo "retezec \"$str\" ok!<BR>";
   }

   for ($i=0; $i<$count_patts; $i++) {
      if (eregi($patts[$i], $str)) {
         echo "nasel jsem retezec \"$patts[$i]\"!<BR>";
      }
      else echo "NENASEL jsem retezec \"$patts[$i]\"!<BR>";
   }
?>
</example>

Zdraví

--mch

Michal Chocholáč
mch na vosis.cz

> interpretovalo české znaky. Tedy zejména mi jde o to, aby třída znaků
> [:alpha:] zahrnovala ě,Ě,š,Š,... a taky aby funkce eregi() apod.
> respektovaly velikost českých znaků ěĚ,šŠ,...
>
> Bohužel už nevím kde jsem četl, že php respektuje podle LC_CTYPE. Ovšem
> jeho nastavení v /etc/sysconfig/i18n nepomohlo a nepomohlo ani nasazení
> funkce setlocale(LC_CTYPE, 'cs_CZ')...
>
> Používám RH 7.1 CZ s (tuším původním) php-4.0.4pl1-9.




Další informace o konferenci Linux