Autor Zpráva
fleury16
Profil
Zdravím,
hledal jsem script na odstranění diakritiky z textu a tady na JPW jsem našel script od IIlooka:
function  title2pagename($title) {
    static  $convertTable = array  (
        'á' => 'a', 'Á' => 'A', 'ä' => 'a', 'Ä' => 'A', 'č' => 'c',
        'Č' => 'C', 'ď' => 'd', 'Ď' => 'D', 'é' => 'e', 'É' => 'E',
        'ě' => 'e', 'Ě' => 'E', 'ë' => 'e', 'Ë' => 'E', 'í' => 'i',
        'Í' => 'I', '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', 'Y' => 'Y',
        'ž' => 'z', 'Ž' => 'Z', 'ź' => 'z', 'Ź' => 'Z',
    );
    $title = strtr($title, $convertTable);
   
     return  $title;
}

No a problém je to v že když ho dám do souboru s příponou .inc a includuju ho do stránky tak volaná funkce nefunguje, jakože neodstraní diakritiku cestu mám správně tam mě to nedává erorry. No a když tu funkci napíšu normálně do stránky kde ji volám tak jede naprosto v pořádku, tak prosím o radu jestli někdo ví v čem je chyba?
Bertram
Profil
fleury16:
neodstraní diakritiku cestu mám správně tam mě to nedává erorry
Ahoj, co se teda stane? Vrátí ho v původním stavu?
Ugo
Profil
máš zaplé errory?
nezapomeň, že tohle funguje
a();
function a() {
    echo "bbbb";
}

tohle nefunguje
a();
include('a.inc');

a toto funguje
include('a.inc');
a();

hodilo by se říct co to dělá no
fleury16
Profil
errory zapnuté a includuju to správně pač jinak by to dávalo ty errory
Someone
Profil
Viz Ugovo [#3] Nevoláš onu funkci dříve než ji includuješ?
Ugo
Profil
Je pravdou, že nedefinovaná funkce je fatal_error, toho už si člověk všimne :-) Nicméně teď jsem to otestoval a funkčnost je v pohodě. Máš to uložené obojí ve stejném kódování? (UTF-8)
fleury16
Profil
Kurnik sem vůl bylo to tím kódováním ono to tam nastavené je ale než se to uloží se to musí tam v pspadu znovu aspoň jednou nastavit a to sem zapomněl díky moc za pomoc
Fisak
Profil *
$text = "příliš žluťoučký kůň úpěl ďábelské ódy";

 setlocale(LC_ALL, 'czech'); // záleží na použitém systému

 echo iconv("utf-8", "us-ascii//TRANSLIT", $text);



$text = "příliš žluťoučký kůň úpěl ďábelské ódy"
echo(StrTr($text, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz"));



vyber si jedno řešení :-)
DJ Miky
Profil
Fisak:
StrTr($text, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz")

Toto raději nepoužívat, v UTF-8 to selže kvůli vícebajtovým znakům.
fleury16
Profil
právě kvůli tomu kódování používám tu funkci s pole :)
Alphard
Profil
Black filtr není v tomto případě asi nikdy zcela spolehlivý.
Inspiroval bych se třeba tímto http://php.vrana.cz/vytvoreni-pratelskeho-url.php (ošetřuje to více věcí, po osekání se můžete dostat na první ukázku v [#8]). Zdůrazňuji hlavně tu část, která na závěr smaže vše, co není povolené.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0