2013-05-02 2 views
0

저는 정규식에서 초보자입니다.PHP preg_match 문자열에서 시작하는 방법 "charcter ="및 "&"로 끝납니다.

제가 가지고

$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 

내가 문자열 매개 변수의 위치가 고정되어 있지 않기 때문에 폭발 또는 이와 유사한 명령을 사용하지 못할.

감사합니다.

답변

3

정규식을 사용하지 마십시오. 작업에 잘못된 도구입니다. parse_str() 사용

prints
$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 
+0

합니다. 그러나 그것은 꽤 매끄럽다. 지금 사용하고 싶습니다. – EnigmaRM

+0

환상적! 고맙습니다. 출력은 29-31 48-46,47 (더하기 기호 없음)이지만 문제는 없습니다. – netoper

+0

@glirpi - 쿼리 문자열에서'+'는 공간을 의미하기 때문입니다. – nickb

관련 문제