在我的网站中,用户可以在其个人资料中添加网址。
此网址可以是http://www.google.com
或www.google.com
或google.com
。
如果我只是插入我的PHP代码<a href="$url">$url</a>
,那么链接并不总是绝对的。
如何强制a
标记为绝对标记?
答案 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指出错误。谢谢!