0

私は正規表現の初心者です。

私は持っている:

$str = 'manufacturer=1,2,3&brand=5,4&filter=29-31+48-46,47&price=150-700';
$find = 'filter'; // for example. it can also be a price or brand or something

if (strpos($str, $find) !== FALSE)
{
$matches = array();
preg_match('/' . $find . '=???/', $str, $matches);
var_dump($matches);
}

??? 使用する必要がある正規表現と、この文字列データから preg_match を使用して個別に解析する方法は次のとおりです。

[0] = 29-31+48-46,47 // data parsed from "filter=" to "&" character

文字列内のパラメータの位置が固定されていないため、explode などのコマンドを使用できません。

感謝!

4

1 に答える 1

3

正規表現を使用しないでください。それは仕事には不適切なツールです。使用parse_str():

$str = 'manufacturer=1,2,3&brand=5,4&filter=29-31+48-46,47&price=150-700';
parse_str( $str, $array);
echo $array['filter']; 

これは次を出力します

29-31 48-46,47
于 2013-05-02T16:30:10.387 に答える