Задать вопрос
@9StarRu

Почему preg_match не отдает цифры после точки?

Пытаюсь получить данные из url так:

$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

 if (!preg_match('/^https:\/\/site.ru\/([.0-9]+)-([a-z]+)-([a-z]+)/i', $url, $url_params)) {
 die('Wrong url');
 }
 print $one_id = (int)$url_params['1'];
 print $two_id = (string)$url_params['2'];
 print $two2_id = (string)$url_params['3'];


Если url такой https://site.ru/0.9-one-two/
я получаю только 0 и one и two
Как получить 0.9?
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F
(int)$url_params['1']

То есть, привели значение к целому, и удивляетесь, что дробная часть пропала. Умно.

Замените int на float или оставьте строкой.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽