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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 // slash-slash protocol remove https:// or http:// and leave // - if it's 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; }