Вопрос по PHP

CyberX
На сайте с 08.03.2008
Offline
51
432

Нужно произвести в тексте замену всех числовых данных

В исходниках может попадаться вид 0,578 или 15,798, а нужен вид 0.578 или 15.798

Фактически нужна замена в числовых выражениях с занятой на точку.

Шустрый хостинг (http://www.colocat.ru) за нормальные деньги (Москва). 30 дней тестовый период. Рекомендую копирайтера aronskaya (/ru/users/73753). Отличные авторские тексты.
psylosss
На сайте с 23.12.2005
Offline
126
#1

$text=preg_replace('@\d,\d@','\1.\2',$text);

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
CyberX
На сайте с 08.03.2008
Offline
51
#2

Сам докопался вот до этого:

$new = preg_replace('/(\d)(,)(\d+)/i', '$1.$3', $old);

Это как на ваш взгляд с точки зрения программирования будет верно или нет ?

psylosss
На сайте с 23.12.2005
Offline
126
#3

Верно :)

CyberX
На сайте с 08.03.2008
Offline
51
#4

Тогда ещё один вопросик :)

Нужно из текста после точного совпадения (без учета регистра) выдернуть число(красное):

Пример:

масло сливочное 80% 200

сосиски молочные 220,60

malls
На сайте с 08.08.2005
Offline
255
#5
CyberX:
Сам докопался вот до этого:
$new = preg_replace('/(\d)(,)(\d+)/i', '$1.$3', $old);

Это как на ваш взгляд с точки зрения программирования будет верно или нет ?

С точки зрения прграммирования верно будет не плодить лишних сущностей (зачем запятую в скобки?) и учитывать возможность множественных символов подряд, т.е.:

$new = preg_replace('/(\d+),(\d+)/i', '$1.$2', $old);

CyberX:
Тогда ещё один вопросик :)
Нужно из текста после точного совпадения (без учета регистра) выдернуть число(красное):
Пример:
масло сливочное 80% 200
сосиски молочные 220,60

если текст построчно (как в примере), то как то так:

preg_match('/строка([^\n]*)\n/i', $text, $match);

sirota77
На сайте с 08.09.2008
Offline
161
#6

если эти числа присутствуют в переменных, возможно достаточно поправить локаль

setlocale(LC_NUMERIC, 'C');

так дробная часть будет отделена точкой

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