Регулярное выражение PHP - только число (цена)

Я пытаюсь удалить .00 из поля цены. У меня вывод цены такой:

127,000.00 € 

Мое регулярное выражение:

 <?php  $site = get_field('price'); $site = preg_replace( '/[^0-9]/', '', $site ); $site = rtrim($site, ''); echo $site;?>

Результат:

12700000

Так должно быть:

 127000

Может ли кто-нибудь помочь мне с этим?

А если это 127,000.50 €?

Andreas 03.04.2019 14:26
str_replace([',', '.00 €'], ['', ''], $site);
Daniel W. 03.04.2019 14:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
2
64
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий
$amount =  "127,000.00 €";
$amount = explode(" ",$amount);
$amount =  $amount[0];
$amount = str_replace( ',', '', $amount );
echo (int) $amount ;

вывод: 127000

Мммм .. да ... Почти ... 3v4l.org/jMZFt есть еще случаи, на которые ОП не ответил, давайте подождем и посмотрим, чего он / она на самом деле хочет. Кроме того, простое удаление чего-либо после точки не всегда может быть правильным. В некоторых странах точка используется как разделитель тысяч.

Andreas 03.04.2019 14:40

@DanFromGermany обновил ответ. @ Андреас, сначала я подумал, что "127,000.00 $" - это окончательный результат, а у ОП есть доступ к 127 000,00, поэтому я так и сделал.

Danyal Sandeelo 03.04.2019 14:45

$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

Другие вопросы по теме

Страница сообщений Wordpress - цикл не показывает последнее сообщение
Nginx — как предотвратить захват всех местоположений WordPress, чтобы я мог использовать некоторые из них для angular x?
Как я могу зациклить определенный пост WordPress
При проверке номера телефона должны быть действительны 9,10,14-значные номера, если номер начинается с +, то любой номер должен быть действительным
Wordpress — серверу Jetpack не удалось установить связь с URL-адресом XML-RPC вашего сайта
Добавьте класс в HTML-тег <ul> на страницах магазина и архива Woocommerce
Мой шорткод WPdiscuz отображается в верхней части страницы
Как отобразить сообщения об отношениях ACF в виде цикла в шаблоне страницы
Woocommerce уведомляет по электронной почте дополнительных получателей в зависимости от роли пользователя
Использование WP-CLI в Plesk для обновления носителя с произвольным размером изображения, не работает