| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Тексты > Непонятки с функцией sprintf и форматом "%s/%s/%s" |
| Автор: Ciber SLasH 7.4.2006, 16:27 | ||
Столкнулся с такой проблемой, если определена переменная-формат $lang['DateFormat']="%s/%s/%s";, то такой кусок кода:
возвращает строку не так как было задумано, а автоматически изменяет формат на "%2$s/%1$s/%3$s" и дата выглядит уже по-другому. Кто-нибудь знает как это лечится без изменения переменной формата? |
| Автор: skalex 7.4.2006, 16:55 | ||
А покажи дамп $this ...
|
| Автор: Ciber SLasH 7.4.2006, 17:18 | ||||
Переменные выводятся правильно. К примеру в лог скидывается такая инфа:
но функция глючит как не странно в IE, в Опере всё нормально. Я конечно понимаю, что это звучит глупо, т.к. браузер не влияет на работу PHP, но факт остаётся фактом. А решил я это безобразие так:
короче поудалял регом все цифры и знаки доллара из формата... |
| Автор: Ciber SLasH 7.4.2006, 18:15 |
| Однако, на этом сюрпризы не закончились... С датами вообще полный П. Есть ещё такая переменная-формат $lang['DateTimeSPHP']="d/m H:i";, выводится дата так: echo Date($lang['DateTimeSPHP']); и опять в IE6 идут глюки и в FireFox 1.0.1, они каким-то макаром автоматически меняют положение дня и месяца в формате и формат приобретает вид m/d H:i а Opera 8.53 отображает как задумано. Где сабака порылась? |
| Автор: Ciber SLasH 7.4.2006, 19:56 |
| Отбой парни, я не доглядел, что у меня формат берётся в зависимости от текущей локали, а разные браузеры по разному сообщают серверу эту инфу. IE шлёт en_us, а Опера en. |