PHP의 URL에서 동일한 이름을 가진 여러 매개변수 검색
URL에는 동일한 이름을 가진 여러 매개변수가 포함되는 경우가 많습니다. 예를 들어, OpenURL 해석기는 여러 "rft_id" 매개변수가 있는 URL을 발견할 수 있습니다. 그러나 PHP의 $_GET은 각 매개변수의 마지막 값만 검색합니다.
이 문제를 해결하려면 다음 코드 조각을 활용할 수 있습니다.
$query = explode('&', $_SERVER['QUERY_STRING']); $params = array(); foreach( $query as $param ) { // Prevent notice on explode() for missing '=' if (strpos($param, '=') === false) $param += '='; list($name, $value) = explode('=', $param, 2); $params[urldecode($name)][] = urldecode($value); }
이 코드는 각 키가 있는 배열을 생성합니다. 은 매개변수 이름이고 해당 값은 해당 매개변수와 연관된 모든 값의 배열입니다.
제공된 OpenURL에서 예:
// Sample URL $url = 'ctx_ver=Z39.88-2004&rft_id=info:oclcnum/1903126&rft_id=http://www.biodiversitylibrary.org/bibliography/4323&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=book&rft.btitle=At last: a Christmas in the West Indies. &rft.place=London,&rft.pub=Macmillan and co.,&rft.aufirst=Charles&rft.aulast=Kingsley&rft.au=Kingsley, Charles,&rft.pages=1-352&rft.tpages=352&rft.date=1871'; $query = explode('&', $url); $params = array(); foreach( $query as $param ) { if (strpos($param, '=') === false) $param += '='; list($name, $value) = explode('=', $param, 2); $params[urldecode($name)][] = urldecode($value); } var_dump($params);
출력 내용:
array( 'ctx_ver' => array('Z39.88-2004'), 'rft_id' => array('info:oclcnum/1903126', 'http://www.biodiversitylibrary.org/bibliography/4323'), 'rft_val_fmt' => array('info:ofi/fmt:kev:mtx:book'), 'rft.genre' => array('book'), 'rft.btitle' => array('At last: a Christmas in the West Indies.'), 'rft.place' => array('London'), 'rft.pub' => array('Macmillan and co.'), 'rft.aufirst' => array('Charles'), 'rft.aulast' => array('Kingsley'), 'rft.au' => array('Kingsley, Charles'), 'rft.pages' => array('1-352'), 'rft.tpages' => array('352'), 'rft.date' => array('1871') )
이 솔루션은 PHP URL에서 동일한 이름을 가진 여러 매개변수를 처리하는 간단한 방법을 제공합니다.
위 내용은 PHP에서 동일한 이름을 가진 여러 URL 매개변수를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!