【问题标题】:Regular Expression to Validate Long URLs in PHP在 PHP 中验证长 URL 的正则表达式
【发布时间】:2010-07-18 19:11:43
【问题描述】:

我正在寻求帮助来创建一个验证非常长的 URL(例如非常长的 Google 地图地址)的正则表达式。我是正则表达式的新手,我在 PHP 中使用 preg_match()。

我用过的表达方式:

preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)

但这不适用于很长的 URL。 我对正则表达式的了解几乎不存在,所以如果有一个简单的更改会有所帮助,请随时指出。

以下是我收到的错误示例:

如果链接最初是: http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=park&sll=43.882057,-108.852539&sspn=4.204424,9.876709&ie=UTF8&hq=park&hnear=&z=7

验证重现: http://maps.google.com/maps?f=q

【问题讨论】:

    标签: php regex url preg-match


    【解决方案1】:

    验证它是否是一个有效的url:

     $valid = filter_var($url, FILTER_VALIDATE_URL);
    

    检查是否设置了所需的get变量,只需将它们作为关联数组获取并使用isset()

     parse_str(parse_url($url,PHP_URL_QUERY),$get_variables);
    

    【讨论】:

      猜你喜欢
      • 2010-09-17
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多