2011-12-04 11 views
2

URL에서 변수 값을 추출해야합니다. 문자열/url은 브라우저의 URL이 아닌 별도의 PHP 쿼리의 일부로로드됩니다.URL 문자열에서 PHP로 값 가져 오기

URL입니다의 모양을 :

index.php?option=com_content&view=article&catid=334:golfeq&id=2773:xcelsiors&Itemid=44 

가 어떻게 항상 & 캡처이 예에서는 2773있는 ID 값을 찾을 수 있습니까?

나는 몇 가지 예제를 이미 읽었지만 현재 시도한 것은 URL 값이 아니라 브라우저에서 현재 페이지의 id 값을 캡처합니다.

감사

+0

값은 "2773"하지만 아니다. – CodeCaster

답변

6

당신은 (변수를 구문 분석하고 배열로 넣어 것) 조합 또는 parse_url (당신을 위해 쿼리 문자열을 분리한다) 및 parse_str 찾고 있습니다. 예를 들어

:

$url = 'index.php?option=com_content&view=article&catid=334:golfeq&id=2773:xcelsiors&Itemid=44'; 

// This parses the url for the query string, and parses the vars from that 
// into the array $vars (which is created on the spot). 
parse_str(parse_url($url, PHP_URL_QUERY), $vars); 

print_r($vars); // see what's in there 

// Parse the value "2773:xcelsiors" to isolate the number 
$id = reset(explode(':', $vars['id'])); 

// This will also work: 
$id = intval($vars['id']); 

echo "The id is $id\n"; 

See it in action.

+0

응답 해 주셔서 감사합니다. 나는 왜 이것이 나를 위해 일하지 않는지의 증상을보고 있다고 생각합니다. print_r ($ vars)을 수행 할 때, 예를 들어 [catid] => 334 : golfeq 대신에 [amp; catid] => 334를 표시하는 대신 "&"을 처리하는 데 문제가 있다고 생각합니다. 내가 어떻게 해결할 수 있을지 생각해? – user1079732

1

당신은 parse_str

+0

문자열은 사이트의 URL이 아니므로 값은'$ _GET' 배열에 없습니다. – kba

+0

나는 그것이 URL이라고 생각했다. –

0

당신은 URL을 구문 분석 parse_url을 사용할 수 있습니다 사용할 수 있습니다!

하지만 당신은 직접 ID 변수의 수를 추출, 사용할 수 있습니다 : "xcelsiors 2773"ID의

$url = 'index.php?option=com_content&view=article&catid=334:golfeq&id=2773:xcelsiors&Itemid=44'; 
$id = preg_replace("/^.*[&?]id=([0-9]+).*$/",'$1',$url); 
echo $id;