Autor Zpráva
suk552
Profil
Ahoj,
koupil jsem si jeden CMS systém. Bohužel ale nepodporuje českou diakritiku...
Potřebuji to nutně opravit... Je to v systému BootStrap.
Díval jsem se do kódu a několikrát mě zarazil tento kód:
        $job_param = $this->input->post('job_params');
        
        $string1 = preg_replace('/[^a-zA-Z0-9 ]/s', '', $job_param);
        $param = strtolower(preg_replace('/\s+/', '-', $string1));
    
        redirect(base_url('search-jobs/'.$param),'');

Napadlo mě, jestli právě v tomto kódu nelze diakritika nějak povolit?
Pomůžete mi prosím?

Předem děkuji :)
Martin2
Profil *
suk552:
Není úplně dobrý nápad bastlit něco bez znalostí toho systémů. Celkem lehce bychom ho mohli úplně znefunkčnit. Připadá mi dost nepravděpodobné, že by jakýkoliv současný systém používal pro text něco jiného než UTF-8. Pokud nefunguje diakritika, bude chyba někde jinde, například ve fontu.

Ten kód cos poslal odřeže diakritiku z nějakého POST parametru a fragment použije pro přesměrování na jinou adresu. Diakritiku v URL předpokládám k ničemu nepotřebuješ.
juriad
Profil
suk552:
Tento kód nejspíš slouží k generování a přesměrování URL adres. A v URL diakritiku nejspíš nechceš. Tento kód není optimální, ale měl by docela dobře fungovat - znaky s diakritikou nahradí za spojovník. Ano, diakritiku můžeš odstranit i jiným šetrnějším způsobem. Myslím však, že někde jinde v aplikaci se bude provádět stejná transformace. Pokud kód neznáš, oprava jen na jednom místě bez znalosti souvislostí znefukční celý systém.

Pokud jsi to koupil, měl bys kontaktovat prodejce/výrobce.
leorond
Profil
Nevím kde máš přesně problém s diakritikou ale mám spuštěn herní server kde potřebuji aby přihlašovací jméno nepodporovalo diakritiku a tímto regulárním výrazem mi diakritika neprojde

if(!preg_match("/^[a-zA-Z0-9]*$/", $registr_login))

Mám to pro jistotu ošetřené ještě jinak "kdyby náhodou".

Potom může být třeba problém v kódování webu, tam používám <meta> který mám uložený v <head>

<meta http-equiv="content-type" content="text/html; charset=utf-8"></meta>

A pokud máš problém s ukládáním do databáze tak musíš nastavit kódování i u připojení, například

sqlsrv()
"CharacterSet"=>"UTF-8"
MySQLi
mysqli_set_charset( $con, 'utf8');
MySQL
mysql_set_charset("utf8");

Možná máš podobný problém a pomůže ti to k vyřešení.


A možná ne a potom by bylo dobré zkusit třeba
ZDE

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