使用 PHP 从完整的 URL 字符串中获取 http:// 后的 URL


get url after http:// from complete url string using php

我像这样将网址字符串存储在数据库中,

'http://www.domain.com'

如何显示上面的字符串,例如

"www.domain.com"

我需要第一手的正则表达式

有了parse_url(),您可以将URL拆分为多个部分并获取所需的URL部分。 在您的情况下(寻找host ),它将是:

$url = 'http://www.domain.com';
$parts = parse_url($url);
$result = $parts['host'];

与其他发布的解决方案相比,这有很大的优势:它可以使用HTTPS-URL,带有get参数的URL和/或包含HTTeAccess身份验证参数的URL,而无需更改代码。

简单地你可以使用$url = 'http://www.domain.com';

str_replace('http://', '', $url);

它将完全返回www.domain.com

一种在不解析 URL 的情况下修改字符串的通用解决方案(即您应该学会自己做这样的事情):

if (stripos($url, 'http://', 0) == 0)
    $url = substr($url, 7);

您还可以轻松添加另一个检查https://前缀或其他任何内容:

if (stripos($url, 'https://', 0) == 0)
    $url = substr($url, 8);
使用正则

表达式,尽管完全没有必要,因为没有什么需要正则表达式,但您可以像这样:

$url = preg_replace('/^http:''/''//', '', $url);

或者直接支持 https:

$url = preg_replace('/^https?:''/''//', '', $url);

您可以使用如下所示的内容:

<?php
str_replace('http://', '', $url);

编辑:

由于您坚持使用正则表达式解决方案,因此这里有一个可以同时处理http和https

的解决方案
echo preg_replace( '/^(htt|ht|tt)p':?'/'//i', '', $url);
echo substr('http://www.domain.com',7);
if (substr('http://www.domain.com',7) == 'http://' or substr('https://www.domain.com',8) == 'https://')