【问题标题】:PHP add subdomain to a url stringPHP将子域添加到url字符串
【发布时间】:2018-03-26 23:32:00
【问题描述】:

我一直在尝试创建一个函数,该函数接受 url 字符串并将子域字符串添加到 url 字符串。很抱歉,如果这对您来说太容易了,我想在用户从主站点登录后重定向到用户子域,这就是为什么要寻找一种“注入”子域的方法。

例如

function inject_subdomain($url,$subdomain)

}

$url = 'hxxps://abc.com/';
inject_subdomain($url,'ninja');
//returns 'hxxps://ninja.abc.com/'

$url = 'hxxps://www.abc.com/';
inject_subdomain($url,'ninja');
//returns 'hxxps://ninja.abc.com/'

$url = 'hxxp://www.abc.co.uk/'; 
inject_subdomain($url,'ninja');
//returns 'hxxp://ninja.abc.co.uk/'

【问题讨论】:

  • 有什么问题?
  • 你确实需要尝试一些东西。 SO 不是免费的代码服务。
  • @MagnusEriksson 对此感到抱歉,这是该服务的新手。下次我会发布我的尝试。不是我想要的。我只知道解决方案非常简单,我只需要指出正确的方向。

标签: php string url


【解决方案1】:

感谢 Abdus Sattar 的回答...它为我指明了正确的方向...以下是我正在寻找的解决方案...

function inject_subdomain($url,$subdomain){

    strstr($url,'www') ? 
      $url_parts = explode('://www',$url):
      $url_parts = explode('://',$url);

   return $url_parts[0].'://'.$subdomain.'.'.$url_parts[1];

}

【讨论】:

    【解决方案2】:

    试试这个:

    function inject_subdomain($url,$subdomain)
       $url_parts = explode('://www',$url);
       $url_parts2 = explode('://',$url);
       if(count($url_parts)){
         return $url_parts[0].$subdomain.$url_parts[1];
        }
       return $url_parts2[0].$subdomain.$url_parts2[1];
    
    }
    

    【讨论】:

    • 您缺少左大括号的函数,if-statement 将总是返回 true(因为 explode 总是返回至少一个数组项)。
    • @Abdus 谢谢。由于我从您的代码中得到的一个想法,我已经解决了这个问题。我已经编辑了您的解决方案。
    猜你喜欢
    • 2017-03-02
    • 1970-01-01
    • 2017-06-26
    • 2011-10-19
    • 2013-10-01
    • 2015-10-21
    • 1970-01-01
    • 2011-04-03
    • 2023-03-14
    相关资源
    最近更新 更多