【问题标题】:Getting started with PHP/Laravel - Adding Http:// and Https:// on to URL PathPHP/Laravel 入门 - 将 Http:// 和 Https:// 添加到 URL 路径
【发布时间】:2015-05-19 03:13:21
【问题描述】:

我正在尝试使用输入字段来添加网站/网址。我只需要 www.domainname.com 即可成功提交表单;但是,提交后,如果提交表单的人没有添加,我想重新添加 http:// 或 https://。

验证如下,

public function name($id) {

$input = Input::all();
$validator = Validator::make(
  $input,
  array(
    'website' => 'active_url',
  )
);

}

为此,需要一个 if 语句。我尝试按照下面列出的代码行插入一些东西,但没有任何运气。

if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
  $url = "http://" . $url;
}

我对 PHP 还很陌生,刚开始使用 Laravel,所以如果有任何混淆或缺乏信息,我提前道歉。任何帮助表示赞赏。

【问题讨论】:

    标签: php validation url laravel input


    【解决方案1】:

    您可以简单地从一开始就剥离方案,然后添加它。

    $url = preg_replace('#^https?://#', '', $url);
    $url = "http://" . $url;
    

    或者

    $url = ltrim('http://', $url);
    $url = ltrim('https://', $url);
    $url = 'http://' . $url;
    

    或者

    if (!preg_match('#^http(s)?://#', $url)) {
      $url = 'http://' . $url;
    }
    

    【讨论】:

      【解决方案2】:

      我认为不需要验证,..也许它可以帮助你

      @alix axel 代码

      function addhttp($url) {
          if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
              $url = "http://" . $url;
          }
          return $url;
      }
      

      【讨论】:

        【解决方案3】:

        这应该可行:

        if (stripos($url, "http://") === false && stripos($url, "https://") === false) {
          $url = "http://" . $url;
        }
        

        stripos 不区分大小写,因此用户是否在 url 前缀中输入小写字母无关紧要。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-30
          • 1970-01-01
          相关资源
          最近更新 更多