2012-10-13 20 views
0

사용자가 수행 한 작업 유형과 제품을 볼 수 있기를 원합니다. 아래에서 쿼리 문자열이 어떻게 보이는지, 그리고 내가 원하는 것은 (이 경우) "changeInfo"와 "2"를 추출하는 것입니다.쿼리 문자열에서 데이터 추출

다음은 작동하는 쿼리 문자열을 분할하는 코드입니다.하지만 분명히 "분할 됨"은 사용되지 않으며 사용되어서는 안됩니다. 그래서 대신 무엇을 사용할 수 있습니까? 이 값을 추출하는 가장 좋은 방법은 무엇입니까?

//$queryString = index.php?action=changeInfo&id=2 

list($a, $action, $b, $id) = split('[=&]', $queryString); 

echo "$a, $action, $b, $id"; //action, changeInfo, id, 2 
+0

http://www.php.net/manual/en/function.parse-str.php –

+1

단순히 '$ _GET'을 사용하지 않는 이유는 무엇입니까? – Gumbo

답변

2

당신은 사용할 수 있습니다

$quertString = parse_url("index.php?action=changeInfo&id=2",PHP_URL_QUERY); 
parse_str("action=changeInfo&id=2",$quertString); 
var_dump($quertString); 

출력

array 
    'action' => string 'changeInfo' (length=10) 
    'id' => string '2' (length=1) 

당신이 그것을 더

list($a,$b) = array_keys($quertString); 
list($action,$id) = array_values($quertString); 


var_dump($a, $action, $b, $id); 
+0

감사합니다. 정말 도움이되었습니다! – holyredbeard

+0

환영합니다. – Baba

1

분할() (폭발에 의해 대체되었다) 중단하려는 경우에 쉽게 들어올 수있는 케이스.

+0

질문에 대한 답변을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남겨 둡니다. –

+0

있습니다. "명백한 split()은 더 이상 사용되지 않습니다."는 작성자의 말입니다. 기존 코드에 대한 가능한 해결책 중 하나는 explode()를 사용하여이를 대체하는 것입니다. 그의 코드는 이미 작동합니다. –