【问题标题】:Preg_match_all from a url [duplicate]来自网址的 Preg_match_all [重复]
【发布时间】:2015-05-25 16:19:20
【问题描述】:

如何使用 preg_match_all 从 url 获取所有 $_GET name => 值

示例 url1:http://www.example.com?go1=test1

示例 url2:http://www.example.com?go2=test2

示例 url3:http://www.example.com?go1=test1&go3=test3

如果可能,返回需要通过数组

$array = array();
$array[name1] = value1;
$array[name2] = value2;

...

【问题讨论】:

  • 为什么是preg_match_all$array = $_GET.
  • 因为 url 不是来自我的网站,所以我从其他网站获取 url,我想从中获取所有 $_GET 值

标签: php


【解决方案1】:

怎么样:

$url = 'http://www.example.com?go1=test1&go3=test3';
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $array);

这会将查询字符串参数放入$array

【讨论】:

  • 谢谢,这就是我要搜索的内容
【解决方案2】:

尝试查看 $_SERVER['QUERY_STRING'] 选项,希望它会有所帮助。

【讨论】:

    【解决方案3】:

    这可以帮助你从 url 中获取变量,你也可以使用parse_url 来获取单个 Url 组件,如

    使用 parse_url:

    $url='http://www.example.com?go1=test1&go3=test3';
    var_dump(parse_url($url)['query']);
    

    查看演示http://codepad.viper-7.com/AVFDdy

    使用 preg_match_all:

    <?php
    $re = "/\\?(.*)/"; 
    $str = "http://www.example.com?go1=test1"; 
    
    preg_match_all($re, $str, $matches);
    echo '<pre>';
    print_r($matches);
    echo '</pre>';
    

    查看正则表达式https://regex101.com/r/eB0rQ2/1

    【讨论】:

      猜你喜欢
      • 2011-07-10
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      相关资源
      最近更新 更多