爆炸URL参数

时间:2016-05-16 13:03:37

标签: php regex laravel php-5.6

我在我的网站上有一个搜索功能,我想制作seo友好链接,所以我决定转换GET查询字符串:

http://example.com/search?category=example&subcategory=mycategory&region=2 //and other parameters

要:

http://example.com/search/{parameters}/{string-for-seo?}/{string-for-seo2?}/ //etc.

其中{parameters}是一个类似的字符串:c3s34r55p21

字符串的目的是压缩参数。

c3 =类别ID n.3, s34 =子类别ID n.34

等等。

问题在于我不知道如何将这个奇怪的字符串分解为数组以获取参数。

[
   'c' => 3
   's' => 34
   'r' => 55
]

1 个答案:

答案 0 :(得分:0)

我想这就是你要找的东西

$input = "c3s34r55p21";

$array = preg_match_all('/([a-z])(\d*)/', $input, $matches);
/*
var_export($array);
echo "\n";
var_export($matches);
echo "\n";
*/
$result = array_combine($matches[1], $matches[2]);
var_export($result);
echo "\n";