firstUpper() se chova na localhostu a na serveru jinak
- ras
- Člen | 135
Ahoj vsem,
dnes me trochu prekvapil server pote, co jsem na nej nahral aplikaci
odladenou na localhostu. Kromy jinych veci, ktere jsou logicke se mi deje
i jedna nepochopitelna.
vstup, napr. praha
use Nette\Utils\Strings;
Strings::firstUpper($mesto["nazev"])
Vystup skrze sablonu na:
- localhostu napr: Praha
- serveru napr: P
Pouzivam nette.min
const NAME = 'Nette Framework',
VERSION = '2.0-beta',
REVISION = '8a3182e released on 2011-10-11';
Mate nekdo podobnou zkusenost ci najeky hezky napad na reseni …nemyslim ucfirst(), to funguje, ale myslim reseni „nastaveni“, abych to Strings::firstUpper() mohl pouzivat ;o)
Diky.
Radek
- Jan Tvrdík
- Nette guru | 2595
Zkus
mb_strtoupper(mb_substr($s, 0, 1), 'UTF-8') . mb_substr($s, 1, mb_strlen($s, 'UTF-8'));
- ras
- Člen | 135
Jasne, to funguje … stejne jako ucfirst(), pres ktery jsem si to osetril … ale nechapu, proc mi nejde ten Strings::firstUpper(), proc to urezava. Strings::lower / upper / capitalize jsou OK ;o)
Fakt to moc nechapu … podle me na to ani nemuze mit vliv najake nastaveni na serveru, at jiz Apache ci PHP.
Cache jsem tady smazal ;o), vyzkouseno na vice prohlizecich, takze ani tim to neni.
Nicmene v Chrome a Opere (ve Firefoxu bezne delam) mi to haze
session_start(): session_start(): Cannot send session cache limiter - headers already sent (output started at ...blabla../web_temp/cache/_Nette.FileTemplate/_Homepage.default.latte-09736f3ce7aa867e14aac27a9176294f.php:12)
na radku z presenteru
$form->addProtection('Prosím stikněte tlačítko ještě jednou (bezpečnostní prvek vypršel).');
Takze zkusenejsi to uz mozna trklo, me to zatim jeste nedobehlo, ackoliv zacinam tusit … ;o)
- duke
- Člen | 650
Divné chování firstUpper souvisí s bugem v mb_string rozšíření na 64-bitových platformách (kde funkce tohoto rozšíření interpretují PHP_INT_MAX jako 0). V poslední vývojové verzi Nette by k tomu už nemělo docházet, neboť to řeší tento commit: https://github.com/…ce029a0c32fd.