Удаление «http» и «https» из ссылок в PHP: удобные методы и примеры кода

В веб-разработке обработка ссылок и URL-адресов является распространенной задачей. Иногда вам может потребоваться удалить префикс протокола «http» или «https» из ссылки по разным причинам. В этой статье мы рассмотрим несколько методов PHP, которые позволяют легко удалять эти протоколы из ссылок. Мы углубимся в примеры кода и объясним каждый метод простыми разговорными словами. Итак, начнем!

Метод 1: использование str_replace()
Один простой способ удалить «http» или «https» из ссылки — использовать функцию str_replace(). Эта функция позволяет заменять определенные подстроки внутри строки.

$link = "https://www.example.com";
$modifiedLink = str_replace(['http://', 'https://'], '', $link);
echo $modifiedLink; // Output: www.example.com

Здесь мы передаем массив, содержащий протоколы, которые мы хотим удалить, в качестве параметра поиска в str_replace(). Второй аргумент — пустая строка, указывающая, что мы хотим заменить протоколы ничем.

Метод 2: использование parse_url()
Еще один мощный метод предполагает использование функции parse_url(), которая разбивает URL-адрес на различные компоненты.

$link = "http://www.example.com";
$parsedLink = parse_url($link);
$modifiedLink = $parsedLink['host'] . $parsedLink['path'];
echo $modifiedLink; // Output: www.example.com

В этом примере мы извлекаем компоненты «хост» и «путь» из проанализированного URL-адреса с помощью parse_url(). Затем мы объединяем эти части, чтобы сформировать измененную ссылку.

Метод 3: регулярные выражения с помощью preg_replace()
Для большей гибкости можно использовать регулярные выражения. Мы можем использовать функцию preg_replace() вместе с шаблоном регулярного выражения для удаления протоколов.

$link = "https://www.example.com";
$modifiedLink = preg_replace('~^(?:https?://)?~i', '', $link);
echo $modifiedLink; // Output: www.example.com

В этом фрагменте кода мы определяем шаблон регулярного выражения, который соответствует необязательному «http://» или «https://» в начале строки. Символы «~» действуют как разделители, а модификатор «i» делает шаблон нечувствительным к регистру. Мы заменяем совпадающий шаблон пустой строкой, фактически удаляя протокол.

В этой статье мы рассмотрели три различных метода удаления протоколов «http» и «https» из ссылок в PHP. Используя функцию str_replace(), parse_url() или регулярные выражения с помощью preg_replace(), вы можете легко манипулировать ссылками и извлекать нужный формат. Каждый метод имеет свои преимущества, поэтому выберите тот, который соответствует вашим конкретным потребностям. Приятного кодирования!