Подтвердить что ты не робот

PHP Regex для удаления http://из строки

У меня есть полные URL-адреса в виде строк, но я хочу удалить http://в начале строки, чтобы отобразить URL-адрес (например: www.google.com вместо http://www.google.com)

Может кто-нибудь помочь?

4b9b3361

Ответ 1

$str = 'http://www.google.com';
$str = preg_replace('#^https?://#', '', $str);
echo $str; // www.google.com

Это будет работать как для http://, так и https://

Ответ 2

Вам вообще не нужно регулярное выражение. Вместо этого используйте str_replace.

str_replace('http://', '', $subject);
str_replace('https://', '', $subject);

Объединяется в одну операцию следующим образом:

str_replace(array('http://','https://'), '', $urlString);

Ответ 3

Лучше используйте это:

$url = parse_url($url);  
$url = $url['host'];

echo $url;

Проще и работает для http:// https:// ftp:// и почти всех префиксов.

Ответ 4

Почему бы не использовать parse_url вместо?

Ответ 5

Чтобы удалить http://domain (или https) и получить путь:

   $str = preg_replace('#^https?\:\/\/([\w*\.]*)#', '', $str);
   echo $str;

Ответ 6

Если вы настаиваете на использовании RegEx:

preg_match( "/^(https?:\/\/)?(.+)$/", $input, $matches );
$url = $matches[0][2];

Ответ 7

Да, я думаю, что str_replace() и substr() быстрее и чище, чем регулярное выражение. Для этого существует безопасная быстрая функция. Легко видеть, что именно оно делает. Примечание: return substr ($ url, 7) и substr ($ url, 8), если вы также хотите удалить //.

// slash-slash protocol remove https:// or http:// and leave // - if it not a string starting with https:// or http:// return whatever was passed in
function universal_http_https_protocol($url) {  
  // Breakout - give back bad passed in value
  if (empty($url) || !is_string($url)) {
    return $url;
  }  

  // starts with http://
  if (strlen($url) >= 7 && "http://" === substr($url, 0, 7)) {
    // slash-slash protocol - remove https: leaving //
    return substr($url, 5);
  }
  // starts with https://
  elseif (strlen($url) >= 8 && "https://" === substr($url, 0, 8)) {
    // slash-slash protocol - remove https: leaving //
    return substr($url, 6);
  }

  // no match, return unchanged string
  return $url;
}

Ответ 8

<?php
    // (PHP 4, PHP 5, PHP 7)
    // preg_replace — Perform a regular expression search and replace

$array = [
    'https://lemon-kiwi.co',
    'http://lemon-kiwi.co',
    'lemon-kiwi.co',
    'www.lemon-kiwi.co',
];

foreach( $array as $value ){
    $url = preg_replace("(^https?://)", "", $value );
}

Этот вывод кода:

lemon-kiwi.co
lemon-kiwi.co
lemon-kiwi.co
www.lemon-kiwi.co

Смотрите документацию PHP preg_replace