| |
|
|
| | Как этой функцией пользоваться? Хостер сказал мне, что нужно её использовать, а как использовать, говорить не хочет, урод... | |
| |
|
|
| |
|
|
| |
для: coloboc66
(04.06.2007 в 10:09)
| | |
setlocale(LC_ALL, 'имя_локали_которое_нужно_выпытать_у_хостера');
|
Или методом тыка пробуйте всякие ru_RU, RUS и тому подобные.
- - - - -
Посмотрите, что стоит у Вас на локальном и попробуйте поставить тоже самое на удаленном компуторе
echo setlocale(LC_ALL, NULL);
|
| |
| |
|
|
| |
|
|
| |
для: kasmanaft
(04.06.2007 в 10:12)
| | | А в каком месте эту функцию нужно прописывать? | |
| |
|
|
| |
|
|
| |
для: coloboc66
(04.06.2007 в 10:18)
| | | На локальном хосте echo setlocale показывает Russian_Russia.1251 , на реальном - С Что это значит? | |
| |
|
|
| |
|
|
| |
для: coloboc66
(04.06.2007 в 10:33)
| | | C - это локаль по умолчанию. Чего она дает/не дает точно сказать не могу.. В мануале где-то упоминается, что с А-умляутом (с точками наверху) некоторые строковые функции не работают. Это же, наверное, происходит и с другими "эксклюзивными" буквами. Думаю, к ним и кириллица относится. | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(04.06.2007 в 17:24)
| | | В скрипте, принимающем сообщение от броузера, написал:
setlocale(LC_ALL, 'Russian_Russia.1251');
Ни фига не помогло, строка на кириллице как не резалась, так и не режется... | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(04.06.2007 в 17:24)
| | | setlocale(LC_ALL, "ru_RU.CP1251"); | |
| |
|
|
| |
|
|
| |
для: sim5
(04.06.2007 в 18:07)
| | | sim5 - ваш вариант подошел, кажется! Спасибо всем! А хостер, урод, вместо того, чтобы дать вот такую одну единственную строчку, даёт только ссылки на документацию на английском(!!!) языке. | |
| |
|
|
| |
|
|
| |
для: coloboc66
(04.06.2007 в 18:16)
| | | Это не мой вариант. А подобный глюк был у меня, и такая запись тоже не давала результата. Хотя хостер и не отзывался на вопросы, но я уродом )) его не называл. А потом все чудесным образом заработало - почему, загадка... | |
| |
|
|
| |
|
|
| |
для: sim5
(04.06.2007 в 18:22)
| | | А я уродом его называю, потому что плачу ему деньги. А деньги нужно отрабатывать, знаете-ли, они даром не даются. | |
| |
|
|
| |
|
|
| |
для: coloboc66
(04.06.2007 в 21:40)
| | | После того, как Вы его так назвали - он отработал деньги? | |
| |
|
|
| |
|
|
| |
для: Trianon
(04.06.2007 в 22:00)
| | | Пока нет. Однако не забывайте закон бизнеса: "Клиент ВСЕГДА прав." И еще: понимаете -ли, у человека есть нервы, и они бывает, ослабевают... После тупых диалогов. | |
| |
|
|
| |
|
|
| |
для: coloboc66
(04.06.2007 в 22:04)
| | | Проблема setlocale плавно перетекает в проблему образа хостера.)
Мне бы очень хотелось знать, почему вдруг на хосте стала работать эта установка локали, а также способ предложенный Хеопсом, и это при том, что различий в phpinfo() до и после не обнаружил, как и в setlocale(). Будь хостер трижды уродом (это его проблемы), но я бы был безмерно благодарен ему, если бы он помог узнать мне это, ведь это важно. ТХ самого хостера меня не интересуют.)) | |
| |
|
|
| |
|
|
| |
для: sim5
(05.06.2007 в 04:29)
| | | А вы попробуйте спросить у хостера... | |
| |
|
|
| |
|
|
| |
для: coloboc66
(05.06.2007 в 09:12)
| | | >А вы попробуйте спросить у хостера...
Так молчит, без писка...) Да и бог с ним, заработала и на том спасибо. Зачем нервы тратить, оно вам надо? Лучше уж "добить" хостера вежливо. Ну а если молчит, зачем излишний раз заводить себя. Мне например нравится такое - "Жизнь коротка, потерпи чуть-чуть!". | |
| |
|
|
| |
|
|
| |
для: sim5
(05.06.2007 в 04:29)
| | | на самом деле тут палка о двух концах.
Есть информация (в том числе и в этой проблеме) которая описывает принципы. Что такое локаль, что она определяет, как она задается, на работу каких функций влияет и т.д.
И есть информация, причастная сугубо конкретному серверу. Имена локалей, соответствующие имеющимся на сервере кодовым страницам.
Первое представляет ценные данные, которые спрашивать у хостера безусловно можно, только это не самый эффективный способ получить исчерпывающее и развернутое описание.
Второе никто кроме хостера не знает, однако его хостер обязан предоставить по первому писку клиентра. А лучше бы вообще без писка. В местном FAQ, например. | |
| |
|
|
| |
|
|
| |
для: Trianon
(05.06.2007 в 09:56)
| | | Так что ж это получается? Значит, я в ПРИНЦИПЕ не могу написать скрипт на РНР, который безпроблемно работал бы на любом хостинге, т.е. был бы универсальным?! | |
| |
|
|
| |
|
|
| |
для: coloboc66
(05.06.2007 в 10:16)
| | | >Значит, я в ПРИНЦИПЕ не могу написать скрипт на РНР
В ПРИНЦИПЕ можете. Например, не используя локале-зависимые функции, а написав их аналоги. | |
| |
|
|
| |
|
|
| |
для: glsv (Дизайнер)
(05.06.2007 в 10:19)
| | | Что-то совсем не могу допереть, как написать аналог вот такой функции?
setlocale(LC_ALL, "ru_RU.CP1251"); | |
| |
|
|
| |
|
|
| |
для: coloboc66
(05.06.2007 в 10:27)
| | | Аналог такой писать не надо.
Пример: функция смены регистра символов strlolower(). Вместо нее можно использовать конструкцию:
<?
strtr($string,"АБВГД","абвгд");
?>
|
| |
| |
|
|
| |
|
|
| |
для: glsv (Дизайнер)
(05.06.2007 в 10:19)
| | | >>Значит, я в ПРИНЦИПЕ не могу написать скрипт на РНР
>В ПРИНЦИПЕ можете. Например, не используя локале-зависимые функции, а написав их аналоги.
Но при этом почти наверняка быстродействие соответствующего участка кода просядет на порядок.
Есть еще компромиссный вариант - не использовать не сами функции, а их локале-зависимые вызовы. Это достигается невсегда, но во многих случаях - вполне приемлемый компромисс.
К примеру: preg_match("/[0-9а-яё]+/i", $line, $res) и preg_match("/[0-9а-яА-ЯёЁ]+/", $line, $res) в при 1251-кодировке исходного текста и проверяемой строки - эквивалентны. Но первый вызов зависит от локали, а второй - нет. | |
| |
|
|
| |
|
|
| |
для: coloboc66
(04.06.2007 в 10:09)
| | | setlocale(LC_ALL, '');
В этом случаи есть шанс, что php может установить локаль самостоятельно..
/это вроде в Котерове написано было. | |
| |
|
|
| |
|
|
| |
для: Disable
(05.06.2007 в 12:13)
| | | Не, у меня этот вариант не срабатывает. | |
| |
|
|