@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
0xD34F
@0xD34F
(int)$url_params['1']

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

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

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

Войти через центр авторизации
Похожие вопросы