如何强制HTML链接绝对?

时间:2013-06-17 12:07:59

标签: php html anchor relative-path absolute-path

在我的网站中,用户可以在其个人资料中添加网址。

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

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

如何强制a标记为绝对标记?

3 个答案:

答案 0 :(得分:24)

如果您在网址前加//,则会将其视为绝对网址。例如:

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

请注意,这将使用与投放网页相同的协议(例如,如果您的网页的网址为https://path/to/page,则生成的网址将为https://google.com。)

答案 1 :(得分:5)

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

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

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

答案 2 :(得分:5)

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

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

基本上,如果网址不包含'http',请将其添加到字符串的前面(前缀)。

或者我们可以使用RegEx

执行此操作
$http_pattern = "/^http[s]*:\/\/[\w]+/i";

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

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