나는 문자열 MySQL의 테이블에 저장이 같이 있습니다 PHP에서 쿼리 문자열을 변수로 변환하려면 어떻게해야합니까?
?name1=value1&name2=value2&name3=value3
PHP에서 이러한 쌍을 변수 또는 배열로 바꾸기 위해 미리 정의 된 함수가 있습니까? 아니면 수동으로해야합니까?
나는 문자열 MySQL의 테이블에 저장이 같이 있습니다 PHP에서 쿼리 문자열을 변수로 변환하려면 어떻게해야합니까?
?name1=value1&name2=value2&name3=value3
PHP에서 이러한 쌍을 변수 또는 배열로 바꾸기 위해 미리 정의 된 함수가 있습니까? 아니면 수동으로해야합니까?
처음에는 물음표를 없애야하지만, PHP 함수 parse_str
을 사용할 수 있습니다. 두 번째 배열 매개 변수없이 호출하면
$arr = array();
parse_str($str, $arr);
print_r($arr);
이 기능은 매뉴얼 페이지에서 언급에 몇 가지주의 사항이 있습니다. 문자열에 프로그램에 이미있는 변수의 값을 변경할 수있는 키가 포함되어 있으면 위험 할 수 있습니다.
magic_quotes_gpc
설정은 쿼리 문자열과 urlencoded POST 본문을 디코딩하기 위해 PHP에서 내부적으로 사용하는 루틴이기 때문에이 함수의 작동 방식에 영향을줍니다. 아마 function parseQueryString($queryString) {
$result = array();
$pairs = explode("&", $queryString);
foreach ($pairs as $pair) {
$pairArr = split("=", $pair, 2);
$result[urldecode($pairArr[0])] = urldecode($pairArr[1]);
}
return $result;
}
이 솔루션 것입니다 : 당신이 magic_quotes_gpc
설정에 의해 영향을받지 않는 휴대용 솔루션을 필요로하는 경우
는이 값의 인코딩을 처리 할 수 urldecode
를 사용하여 수동으로 디코딩 기능을 작성하는 비교적 간단합니다 내장 된 parse_args
함수보다 약간 느리지 만 PHP 구성 방법에 관계없이 일관된 동작을 얻을 수 있습니다. 물론 처음부터 다시 ?
을 제거해야합니다.이 예제는 두 예제에 포함되어 있지 않습니다.
Var_export 유용 할 수도 있습니다.
$arr=?name1=value1&name2=value2&name3=value3
var_export($arr);