URL 缺失时添加 http:// 前缀

新手上路,请多包涵

你好,我有一个非常简单的代码

<a href="'.$aProfileInfo['Website'].'" target="_self">
    <div class="callButton">Website</div>
</a>

问题是,如果用户不输入 http://,链接将指向我的网站,而不是它应该指向的外部网站。

如果用户没有输入 http:// 并在不存在时自动添加,如何在 PHP 中进行检查?

原文由 DiegoP. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 355
2 个回答

一个可能并非在所有情况下都有效的简单解决方案(即“https://”):

 if (strpos($aProfileInfo['Website'],'http://') === false){
    $aProfileInfo['Website'] = 'http://'.$aProfileInfo['Website'];
}

原文由 Christopher Armstrong 发布,翻译遵循 CC BY-SA 3.0 许可协议

我认为你最好使用内置函数 parse_url() 它返回一个关联数组及其组件

这样的事情对你有用:

  if  ( $ret = parse_url($url) ) {

      if ( !isset($ret["scheme"]) )
       {
       $url = "http://{$url}";
       }
}

原文由 David 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题