ugrás a tartalomhoz

iconv kérdés

salla · 2010. Nov. 5. (P), 18.59
Üdv!
Elkezdtem symfony-t tanulni, és felmerült egy olyan probléma, ami szerintem nem a keretrendszerhez köthető. A Jobeet tutorial egyik részlete tárgyalja a szép URL-ek készítését, nekem viszont nem működik a metódus, ami a címeket sluggá (van rá magyar szó?) alakítaná.

    public static function slugify($text)
    {
        $text = preg_replace('#[^\\pL\d]+#u', '-', $text); //replace non letter or digits by -
        $text = trim($text, '-'); //trim
         
        //transliterate
        if (function_exists('iconv')) {
            $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
        }
         
        $text = strtolower($text); //lowercase
        $text = preg_replace('#[^-\w]+#', '', $text); //remove unwanted characters
        
        if (empty($text)) {
            return 'n-a';
        }
        
        return $text;
    }
Itt gondolom a probléma az iconv-vel van (amiről egyébként a tutorial előtt nem is hallottam, szóval lehet, hogy ez értetlenkedésem oka), az "Árvíztűrő tükörfúrógép", "rvztr-tkrfrgp"-ként jelenik meg. Ellenben ha cli-ben futtatom, akkor tökéletesen működik. A két php.ini iconv szekciója ugyanaz, nem igazán értem hol lehet a probléma. Válaszaitokat előre is köszönöm.
 
1

Nekem megy

janoszen · 2010. Nov. 6. (Szo), 11.53
Biztos, hogy UTF-8-as karakterkódolással megy be a bemenet? Muti már egy linket a demó oldalra.
2

Elvileg ez a végeredmény:

salla · 2010. Nov. 6. (Szo), 12.27
Elvileg ez a végeredmény: http://jobbet.org. Ahogy látom itt sincs a függvény a helyzet magaslatán.
3

Megvan

janoszen · 2010. Nov. 6. (Szo), 13.57
Megvan a megoldás, a konzolban alapból UTF-8 localen működik a rendszer (már ha UTF-8-as a konzol), weben viszont nem. Szúrd be ezt a script elejébe:

setlocale(LC_ALL, 'en_US.UTF8');
Szerk: ha esetleg bajod van vele máshol (dátum), akkor csak az LC_CTYPE-ot állítsd át.
4

Köszönöm

salla · 2010. Nov. 6. (Szo), 14.19
Köszönöm a választ!