bokovua
@bokovua
Любитель

Как правильно разобрать строку с url?

Подскажите пожалуйста, не могу сообразить.
У меня есть переменная $url со строкой.
В ней содержится url в формате http://....
Нужно проверить, содержит ли строка https://domain.com . Если нет, то заменить существующий на https://domain.com сохраняя при этом все, что идет после слеша.
Копал в сторону parse_url(). Да, понятно что с помощью него можно вытащить все составляющие urlов, но как эти составляющие далее соединить в одну строку. Рзобрать - понимаю, собрать -увы(
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 4
@ffosters
Можно использовать функцию http_build_url, чтобы построить URL с использованием существующих компонентов:
$url = 'https://google.com?q=test';
$parts = parse_url($url);
$result = http_build_url($parts);


Функция http_build_url доступна после установки pecl_http:
https://pecl.php.net/package/pecl_http
Ответ написан
VicTHOR
@VicTHOR
(╮°-°)╮┳━━┳ ( ╯°□°)╯ ┻━━┻
$str = 'http://chiken.ru/lalala/get.php?param=1';
if (!strpos($str, 'https://domain.com')) $str = preg_replace('~https?://.+?\..{2,4}?/?~', 'https://domain.com/', $str);
echo $str;
Ответ написан
@hesy
Самоуч
Ну, если у вас входящие данные все вида (http://some, https://some), то предлагаю ничего не разбирать, а просто хардкодом заменять str_ireplace('http', 'https', 'http://domain.com')
Ответ написан
Ваш ответ на вопрос

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

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