url的PHP预匹配

url的PHP预匹配,php,preg-match,Php,Preg Match,它不起作用了。如何修复 您需要转义preg控制字符“”和“?” 您正在匹配^test,这意味着字符串应以“test”开头,而字符串应以“/test”开头 我强烈建议使用单勾号,这样就不必转义转义字符“\” ^匹配字符串的开头(输入中的/作为第一个字符),并且必须转义?。请参阅。如果您告诉我们打印($param)的结果,这将有助于任何读者在您的问题中。它提供的信息比仅仅声明“它不起作用”稍微多一些。解析url有更好的方法,请查看parse_url()和parse_str()@KIKOSoftwa

它不起作用了。如何修复

  • 您需要转义preg控制字符“
    ”和“
  • 您正在匹配
    ^test
    ,这意味着字符串应以“
    test
    ”开头,而字符串应以“
    /test
    ”开头
  • 我强烈建议使用单勾号,这样就不必转义转义字符“
    \


  • ^
    匹配字符串的开头(输入中的
    /
    作为第一个字符),并且必须转义
    。请参阅。如果您告诉我们打印($param)的结果,这将有助于任何读者在您的问题中。它提供的信息比仅仅声明“它不起作用”稍微多一些。解析url有更好的方法,请查看
    parse_url()
    parse_str()
    @KIKOSoftware Result=0@jeroen动态参数必须为ANKS。它对我有用:-)
    $request = '/test.php?action=save&key=e7s2uHhKKtcM32cHKUKM&login=test';
    $param = preg_match("#^test.php?action=save&key=(\w+)&login=(\w+)($)#", $request, $match);
    print_r($param);
    
    $param = preg_match('#^/test\.php\?action=save&key=(\w+)&login=(\w+)($)#', $request, $match);
    print_r($param); // 1
    print_r($match); // Array (
    // (
    //     [0] => /test.php?action=save&key=e7s2uHhKKtcM32cHKUKM&login=test
    //     [1] => e7s2uHhKKtcM32cHKUKM
    //     [2] => test
    //     [3] => 
    // )