Zadejte hledaný výraz...

Problém s funkcí

Martin
verified
rating uzivatele
(62 hodnocení)
25. 4. 2011 21:21:03
Všechny zdravím.
Prosím o pomoc. Používám jednu funkci, kterou jsem našel někde na netu na převod textu s diakritikou do formátu, aby to šlo použít třeba v URL nebo názvu souboru.
Teď jsem, ale přišel na jeden problém a nevím proč to dělá.
Když například převádám slovo "uživatel" tak to vyhodí "uzivatel". To je ok.
Ovšem když je u převáděného slova jako první písmeno "ž", tak ho to vypustí . Takže slovo "život" je "ivot".
Kod funkce
function title2pagename($title) {
static $convertTable = array (
'á' => 'a', 'Á' => 'A', 'ä' => 'a', 'Ä' => 'A', 'č' => 'c',
'Č' => 'C', 'ď' => 'd', 'Ď' => 'D', 'é' => 'e', 'É' => 'E',
'ě' => 'e', 'Ě' => 'E', 'ë' => 'e', 'Ë' => 'E', 'í' => 'i',
'Í' => 'I', 'ï' => 'i', 'Ï' => 'I', 'ľ' => 'l', 'Ľ' => 'L',
'ĺ' => 'l', 'Ĺ' => 'L', 'ň' => 'n', 'Ň' => 'N', 'ń' => 'n',
'Ń' => 'N', 'ó' => 'o', 'Ó' => 'O', 'ö' => 'o', 'Ö' => 'O',
'ř' => 'r', 'Ř' => 'R', 'ŕ' => 'r', 'Ŕ' => 'R', 'š' => 's',
'Š' => 'S', 'ś' => 's', 'Ś' => 'S', 'ť' => 't', 'Ť' => 'T',
'ú' => 'u', 'Ú' => 'U', 'ů' => 'u', 'Ů' => 'U', 'ü' => 'u',
'Ü' => 'U', 'ý' => 'y', 'Ý' => 'Y', 'ÿ' => 'y', 'Ÿ' => 'Y',
'ž' => 'z', 'Ž' => 'Z', 'ź' => 'z', 'Ź' => 'Z',
);
$title = strtolower(strtr($title, $convertTable));
// $title = preg_replace('/+/u', '-', $title);
$title = str_replace('--', '-', $title);
$title = trim($title, '-');
return $title;
}
Díky MOC za případnou pomoc.
25. 4. 2011 21:21:03
https://webtrh.cz/diskuse/problem-s-funkci#reply631273
Michal Skoula
verified
rating uzivatele
(18 hodnocení)
25. 4. 2011 22:11:34
já používám tohle, zkus to
25. 4. 2011 22:11:34
https://webtrh.cz/diskuse/problem-s-funkci#reply631272
Michal Haták
verified
rating uzivatele
(1 hodnocení)
25. 4. 2011 22:53:10
my na diakritiku a seo url pouzivame dve fce
jedna na diakritiku(+spec znaky)
25. 4. 2011 22:53:10
https://webtrh.cz/diskuse/problem-s-funkci#reply631271
tomik1313
verified
rating uzivatele
(2 hodnocení)
26. 4. 2011 07:40:38
Ahojte,
skusal som tu funkciu title2pagename a normalne funguje. Dal som "život" a vypisalo "zivot".
26. 4. 2011 07:40:38
https://webtrh.cz/diskuse/problem-s-funkci#reply631270
nline
verified
rating uzivatele
(1 hodnocení)
26. 4. 2011 08:59:59
Mě osobně funkce funguje bez problémů. Nicméně nemáš rozdílné kódování mezi scriptem předávajícím slovo a scriptem pro jeho zpracování? Podle mě pokud předáváš scriptu slovo v utf-8 a převodní tabulku máš ve win1250, script pak nedokáže přiřadit písmenu protejšek bez diakritiky.
26. 4. 2011 08:59:59
https://webtrh.cz/diskuse/problem-s-funkci#reply631269
Martin
verified
rating uzivatele
(62 hodnocení)
26. 4. 2011 09:45:28
Omlovám se, ale stala se mi situace, kterou nesnáším u jiných a to že problém není v popisované funkci, ale jinde. Když jsem použil pouze čistou funkci, tak to jde. Používám to na upravu názvu uplodovaných souborů a mám tam
když dám pryč to basename, tak to už nedělá. Čím to je ?
26. 4. 2011 09:45:28
https://webtrh.cz/diskuse/problem-s-funkci#reply631268
Petr Daněk
verified
rating uzivatele
(33 hodnocení)
26. 4. 2011 10:04:06
Napsal KejliCZ;650070
Omlovám se, ale stala se mi situace, kterou nesnáším u jiných a to že problém není v popisované funkci, ale jinde. Když jsem použil pouze čistou funkci, tak to jde. Používám to na upravu názvu uplodovaných souborů a mám tam
když dám pryč to basename, tak to už nedělá. Čím to je ?
Z php manualu k funkci basename:
basename() is locale aware, so for it to see the correct basename with multibyte character paths, the matching locale must be set using the setlocale() function.
26. 4. 2011 10:04:06
https://webtrh.cz/diskuse/problem-s-funkci#reply631267
Martin
verified
rating uzivatele
(62 hodnocení)
26. 4. 2011 10:29:39
a je nějaký problém, když tam basename nebude, když to bez toho funguje dobře ?
26. 4. 2011 10:29:39
https://webtrh.cz/diskuse/problem-s-funkci#reply631266
Pro odpověď se přihlašte.
Přihlásit