如果 URL 中不存在 http://,如何添加该名称

2022-08-30 07:17:02

如果 URL 尚未包含协议(例如 ,或 ),如何将其添加到 URL?http://http://https://ftp://

例:

addhttp("google.com"); // http://google.com
addhttp("www.google.com"); // http://www.google.com
addhttp("google.com"); // http://google.com
addhttp("ftp://google.com"); // ftp://google.com
addhttp("https://google.com"); // https://google.com
addhttp("http://google.com"); // http://google.com
addhttp("rubbish"); // http://rubbish

答案 1

@nickf代码的修改版本:

function addhttp($url) {
    if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
        $url = "http://" . $url;
    }
    return $url;
}

识别 、 和 以不区分大小写的方式。ftp://ftps://http://https://


答案 2

在撰写本文时,没有一个答案使用内置函数:

function addScheme($url, $scheme = 'http://')
{
  return parse_url($url, PHP_URL_SCHEME) === null ?
    $scheme . $url : $url;
}

echo addScheme('google.com'); // "http://google.com"
echo addScheme('https://google.com'); // "https://google.com"

另请参见:parse_url()


推荐