Autor | Zpráva | ||
---|---|---|---|
suk552 Profil |
#1 · Zasláno: 3. 9. 2016, 16:40:29
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 * |
#2 · Zasláno: 3. 9. 2016, 17:09:45
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_set_charset( $con, 'utf8'); 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 |
||
Časová prodleva: 8 let
|
0