@Jony1337

Не работает preg_match в php?

Привет есть такой код
preg_match('@^(?:http://)?([^/]+)@i',
    "http://sf.uploads.ru/qGhaC.png", $matches);
$host = $matches[1];
echo $host;

На выходе у меня sf.uploads.ru , а нужно sf.uploads.ru/qGhaC.png
Почему не работает вроде всё норм написал
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
gobananas
@gobananas
finishhim.ru
Зачем так сложно? Может так? https://regex101.com/r/kWl1vb/1
Или так
http:\/\/(.*?)$
В зависимости от того нужен вам только .png на конце или и другие изображения тоже
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что если тупо скопипастить код, извлекающий имя хоста из URL, то этот код будет именно извлекать имя хоста и ничего больше. В коде даже переменная названа $host.
preg_match('@^https?://(.*)$@', $url, $matches)
Ответ написан
Комментировать
@soulkoden
Для каждой задачи свой инструмент. Регулярки явно не для этого:
$url = 'http://sf.uploads.ru/qGhaC.png';
echo parse_url($url, PHP_URL_HOST); // sf.uploads.ru
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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