PHP的preg_match为url

时间:2017-10-05 09:21:17

标签: php preg-match

$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);

它无法正常工作。怎么修?

1 个答案:

答案 0 :(得分:-1)

  1. 你需要逃避你的preg控制角色" ."和" ?"
  2. 您正在匹配^test,这意味着该字符串应以&#34; test&#34;开头,而您的字符串以&#34; /test&#34; < / LI>
  3. 我强烈建议您使用单一刻度,这样您就不必逃避转义字符&#34; \&#34;。

    $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] => 
    // )