Я пытаюсь удалить .00 из поля цены. У меня вывод цены такой:
127,000.00 €
Мое регулярное выражение:
<?php $site = get_field('price'); $site = preg_replace( '/[^0-9]/', '', $site ); $site = rtrim($site, ''); echo $site;?>
Результат:
12700000
Так должно быть:
127000
Может ли кто-нибудь помочь мне с этим?
str_replace([',', '.00 €'], ['', ''], $site);





$amount = "127,000.00 €";
$amount = explode(" ",$amount);
$amount = $amount[0];
$amount = str_replace( ',', '', $amount );
echo (int) $amount ;
вывод: 127000
Мммм .. да ... Почти ... 3v4l.org/jMZFt есть еще случаи, на которые ОП не ответил, давайте подождем и посмотрим, чего он / она на самом деле хочет. Кроме того, простое удаление чего-либо после точки не всегда может быть правильным. В некоторых странах точка используется как разделитель тысяч.
@DanFromGermany обновил ответ. @ Андреас, сначала я подумал, что "127,000.00 $" - это окончательный результат, а у ОП есть доступ к 127 000,00, поэтому я так и сделал.
$amtstr = explode(' ', "127,000.00 €");
$value = round(str_replace(',','',$amtstr[0])).' '.$amtstr[1];
echo $value;
Надеюсь, это может помочь вам
Лучший подход с PHP 7+...
Игнорирование десятичных знаков:
$site = '127,000.00 €';
$site = (int) preg_replace('/\..*|\D/', NULL, $site);
echo $site;
// 127000
Округление:
$site = '127,000.50 €';
$site = round(preg_replace('/[^\d.]/', NULL, $site));
echo $site;
// 127001
А если это
127,000.50 €?