43

在我的网站中,用户可以在他们的个人资料中放置一个 URL。

此 URL 可以是http://www.google.comwww.google.comgoogle.com

如果我只是插入我的 PHP 代码<a href="$url">$url</a>,链接并不总是绝对的。

我怎样才能强制a标签是绝对的?

4

3 回答 3

56

如果您使用//它作为 URL 的前缀,则将被视为绝对 URL。例如:

<a href="//google.com">Google</a>.

请记住,这将使用与页面相同的协议(例如,如果您的页面的 URL 是https://path/to/page生成的 URL 将是https://google.com)。

于 2016-10-04T15:58:10.083 回答
8

使用协议,最好是http://

<a href="http://www.google.com">Google</a>

要求用户以这种格式输入 url,如果没有添加,则连接 http://。

如果您仅在 URL 前加上//,它将使用与页面相同的协议。

<a href="//google.com">Google</a>
于 2013-06-17T12:12:18.457 回答
8

我最近不得不做类似的事情。

if (strpos($url, 'http') === false) {
    $url = 'http://' .$url;
}

基本上,如果 url 不包含“http”,则将其添加到字符串的前面(前缀)。

或者我们可以用 RegEx 来做到这一点

$http_pattern = "/^http[s]*:\/\/[\w]+/i";

if (!preg_match($http_pattern, $url, $match)){  
   $url = 'http://' .$url;
}  

感谢@JamesHilton 指出错误。谢谢!

于 2016-08-27T04:30:08.257 回答