Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Строковые функции.
 
 автор: ssgv   (12.08.2006 в 15:37)   письмо автору
 
 

Не выходит ничего с этими функциями не с strtolower() и не с strtoupper()

В локальке все ок, на сервере такое ощущение, что их нет… )))

КОД:

<?php
setlocale
(LC_ALL, array ('ru_RU.CP1251''rus_RUS.1251'));
$abc "А Б В Г Д";
$str strtolower($abc);
echo 
"$str";
?>


Не работает… Как сделать что бы заработало =)

   
 
 автор: kasmanaft   (12.08.2006 в 15:44)   письмо автору
 
   для: ssgv   (12.08.2006 в 15:37)
 

А может быть локаль по-другому именуется на сервере?
.. вроде должно работать :) ...

   
 
 автор: ssgv   (12.08.2006 в 16:06)   письмо автору
 
   для: kasmanaft   (12.08.2006 в 15:44)
 

Да скорее всего, а узнать это как можно, какая локаль на сервере?

   
 
 автор: kasmanaft   (12.08.2006 в 16:19)   письмо автору
 
   для: ssgv   (12.08.2006 в 16:06)
 

Это, вроде бы, только через тех. поддержку

   
 
 автор: ssgv   (12.08.2006 в 17:40)   письмо автору
 
   для: kasmanaft   (12.08.2006 в 16:19)
 

Тех поддержка ответила что локаль на сервере стоит CP1251
Но функции не работают ...

   
 
 автор: RV   (12.08.2006 в 17:54)   письмо автору
 
   для: ssgv   (12.08.2006 в 17:40)
 

а у меня работает и с локалью и без

   
 
 автор: ssgv   (12.08.2006 в 18:28)   письмо автору
 
   для: RV   (12.08.2006 в 17:54)
 

У меня они работают только на локалке, на сервере эти функции не работают…
Как быть?
Функции, то нужные … =)

   
 
 автор: kasmanaft   (12.08.2006 в 18:33)   письмо автору
 
   для: ssgv   (12.08.2006 в 18:28)
 

Они не работают только с кириллицей?
Может быть их отключили? .. только вот зачем :))

   
 
 автор: ssgv   (12.08.2006 в 18:52)   письмо автору
 
   для: kasmanaft   (12.08.2006 в 18:33)
 

Я не думаю что они отключены …)))
Переписка с техподдержкой ПЛАТНОГО, хостинга пока результатов не дала.

На первое письмо был получен ответ:

$abc = D R U W V A
$str = strtolower($abc)
echo $abc

Результат: d r u w v a

Функция strtolower() работает!

На второе мое письмо ответа не было ..))) Когда я им сказал что функция работает, да, но не в моем случаи с кириллицей она ничего не делает, спросил я у них какая локаль, локаль сказали СР1251

Вот собственно интересно, почему она не работает эта функция, даже если пропишешь нормальную локаль, да и не только эта функция не работает, работает только функция strrev() Но она мне не нужна…))))

   
 
 автор: RV   (12.08.2006 в 18:55)   письмо автору
 
   для: ssgv   (12.08.2006 в 18:52)
 

пригрозите хостеру что поменяйте хостера)
это должно ускорить ответ

   
 
 автор: kasmanaft   (12.08.2006 в 19:06)   письмо автору
 
   для: ssgv   (12.08.2006 в 18:52)
 

А локаль так прописываете?

setlocale(LC_ALL, 'CP1251');

Странно вообще =))

   
 
 автор: ssgv   (12.08.2006 в 19:37)   письмо автору
 
   для: kasmanaft   (12.08.2006 в 19:06)
 

Да локаль я прописывал двумя способами и не один не сработал. Может это и есть чудеса? ..)))

Первый раз я прописал так:
setlocale(LC_ALL, array ('ru_RU.CP1251', 'rus_RUS.1251'));

Второй раз так:
setlocale(LC_ALL, 'CP1251');

Эффекта никакого…

   
 
 автор: Loki   (12.08.2006 в 19:50)   письмо автору
 
   для: ssgv   (12.08.2006 в 19:37)
 

А если попробовать вывести

echo setlocale(LC_ALL, null);

Может тогда и хостен не нужен?:)
и еще вопрос... не маячит ли там где-нибудь юникода? может сработает mb_strtolower() ?

   
 
 автор: ssgv   (12.08.2006 в 20:12)   письмо автору
 
   для: Loki   (12.08.2006 в 19:50)
 

Нет функция mb_strtolower() – Вывела ошибку:

Fatal error: Call to undefined function: mb_strtolower() in /home/ssgvru/public_html/test.php on line 14

setlocale(LC_ALL, 'NULL');
тоже ничего хорошего не произошло =)))


Ну юникода там нет =)

Вообще вся страница из себя ничего не представляет, ну кроме как этого:


<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>TEST функции strtolower()</title>
</head>
<body bgcolor="white" text="black">
</body>

<?php
setlocale
(LC_ALL'CP1251');
$abc "АБЦДЕЮЖЗ";
$str strtolower($abc);
echo 
"$str";
?>

</html>


Все, больше в теле странички ничего нет. Все равно не работает функция. :(

   
 
 автор: kasmanaft   (12.08.2006 в 21:03)   письмо автору
 
   для: ssgv   (12.08.2006 в 20:12)
 

//// setlocale(LC_ALL, 'NULL');
//// тоже ничего хорошего не произошло =)))

echo setlocale(LC_ALL, 0);
Должно вывести текущую локаль ... можно поглядеть, меняется ли она или нет

   
 
 автор: ssgv   (12.08.2006 в 22:13)   письмо автору
 
   для: kasmanaft   (12.08.2006 в 21:03)
 

echo setlocale(LC_ALL, 0);
Выводит: C
Больше ничего... Меняется она или нет , не знаю...

   
 
 автор: ssgv   (12.08.2006 в 23:36)   письмо автору
 
   для: ssgv   (12.08.2006 в 22:13)
 

Я так полагаю, что это хостер что то напортачил?

setlocale(LC_ALL, array ('ru_RU.CP1251', 'rus_RUS.1251'));
Вот эта локаль работает и на jino-net.ru И функция strtolower() Работает прекрасно..)))

А у меня же не хочет она никак работать эта функция … :( Что делать не знаю……

И что значит эта С ?

   
 
 автор: Loki   (13.08.2006 в 02:12)   письмо автору
 
   для: ssgv   (12.08.2006 в 23:36)
 

"C" - это локаль по умолчанию. Попробуйте определить меняется ли она - вот в чем была идея.
<?
echo setlocale(LC_ALL0);
setlocale(LC_ALL'CP1251');
echo 
setlocale(LC_ALL0);

Попробуйте так же вычислить локаль через phpinfo().. сдается мне, хостер вам какую-то фигню сказал...

   
 
 автор: ssgv   (13.08.2006 в 12:52)   письмо автору
 
   для: Loki   (13.08.2006 в 02:12)
 

Сделал:
<?php
echo setlocale(LC_ALL0); 
setlocale(LC_ALL'CP1251'); 
echo 
setlocale(LC_ALL0); 
?>


Результат: СС
phpinfo() - смотрел смотрел, но я не знаю, где там смотреть локаль :)
www.ssgv.ru/test.php

По идеи если бы локаль стояла бы CP1251 – как сказал хостер, то вывело бы:

LC_COLLATE=C;LC_CTYPE=Russian_Russia.1251;LC_MONETARY=C;
LC_NUMERIC=C;LC_TIME=CLC_COLLATE=C;LC_CTYPE=Russian_Russia.1251;LC_MONETARY=C;LC_NUMERIC=C;LC_TIME=C

А этого не произошло, значит во всем виноват хостер? ..)))

   
 
 автор: Loki   (13.08.2006 в 15:37)   письмо автору
 
   для: ssgv   (13.08.2006 в 12:52)
 

А если так?

<?php 
echo setlocale(LC_ALL0)."<br>";  
setlocale(LC_ALL'ru');  
echo 
setlocale(LC_ALL0);  
?>

   
 
 автор: ssgv   (13.08.2006 в 16:01)   письмо автору
 
   для: Loki   (13.08.2006 в 15:37)
 

Результат:
С
С

   
 
 автор: ssgv   (13.08.2006 в 20:41)   письмо автору
 
   для: ssgv   (13.08.2006 в 16:01)
 

Написал хостеру про сложившуюся ситуацию, ответа от хостера нет.

Хочу спросить, как быть в данной ситуации, что делать??? =)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования