Задать вопрос
@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?
  • Вопрос задан
  • 58 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F
(int)$url_params['1']

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

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

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

Похожие вопросы