Знатокам PHP

12
M
На сайте с 20.08.2004
Offline
376
724

Столкнулся с такой проблемой, что на разных машинах (локалхост, и сервер хостера) float данные возвращаются в разных форматах, с точкой и с запятой... У хостера с запятой почему-то, а БД и поле decimal его не принимает.

Подскажите как обойти проблему, может настройки есть?

Спасибо.

Miracle добавил 10.09.2009 в 18:07

if(is_float($yy)) {

echo "is float={$yy}\n";

}else {

echo "is not float\n";

}

у меня на машине

is float=3.2

у хостера

is float=3,2

Miracle добавил 10.09.2009 в 18:12

пока сделал решил вот так

$yy = str_replace(",",".",$yy);
отец сыночка, лапочки дочки и еще одного сыночка
[Удален]
#1


<?php
$num = '3,2';

if ( eregi ( '^[0-9][.,][0-9]$', $num ) ) {
echo "is float={$num}\n";
} else {
echo "is not float\n";
}

?>

а так? ))

поправил )

M
На сайте с 20.08.2004
Offline
376
#2

а смысл?

у меня БД в запросе на инсерт или апдейт матюкнется

в бд только с точкой идет.

Miracle добавил 10.09.2009 в 18:45

проверку я делал для себя, что бы понять правильно ли я понимаю и серевр значение флоат

[Удален]
#3
Miracle:
а смысл?
у меня БД в запросе на инсерт или апдейт матюкнется
в бд только с точкой идет.

mysql_real_escape_string() ???

делай тогда через str_replace

А вообще думаю нужно проверять откуда идут данные, не здесь проблема похоже

M
На сайте с 20.08.2004
Offline
376
#4
mysql_real_escape_string() ???

надо попробовать. я недавно отказался от этой функции в целых числах которые приходят от меня а не от сторонних пользовалей.

wdsg
На сайте с 09.02.2009
Offline
31
#5

Проблема может быть связана с разными локалями на этих двух машинах. Попробуйте сделать setlocale(LC_ALL, 'ru_RU.UTF-8') в начале. Заменив кодировку на свою, разумеется.

Проектирование и разработка сложных IT-систем. Вожусь с проблемными задачами.
M
На сайте с 20.08.2004
Offline
376
#6

она и стоит setlocale (LC_ALL, "ru_RU.UTF-8");

N
На сайте с 06.05.2007
Offline
419
#7

Вызов-то может и стоит, а результат работы проверяли? может у него нет такой локали.

Кнопка вызова админа ()
Dreammaker
На сайте с 20.04.2006
Offline
569
#8

Miracle, теоретически нужная локаль может быть неустановлена в ОСи, и тогда установка в скрипте ни на что не влияет. Вот только как проверить локаль не могу вспомнить.

wdsg
На сайте с 09.02.2009
Offline
31
#9

Вот так можно глянуть (linux):

locale -a  | grep ru
M
На сайте с 20.08.2004
Offline
376
#10

я так не проверю :), у меня нет доступа на этот сервер к шелу.

но локаль есть, я проверил по выводу даты.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий