2011-02-07 2 views
0

내가이 문자열이 있습니다PHP는 문자열 조작

http://localhost/migo2/photo.php?id=68&a_id=83&p_id=349&type=1#p_id=302 

을 그리고 난 (분명히 1) 유형의 값

을 얻을 나는

parse_str("http://localhost/migo2/photo.php?id=68&a_id=83&p_id=349&type=1#p_id=302"); 

을하고 좀하고 싶습니다

echo $type; -> 1#p_id=302 

내가 그렇게 생각했다면 #과 # 자체의 오른쪽에있는 모든 것을 제거한 유엔은 내가 원하는 것을 얻는다 고 생각합니다. 이것은 그것을하는 나쁜 방법인가?

+0

문자열을'?'로 압축 한 다음'# '을 사용하면 가장 빠른 해결책이됩니다. –

+0

PHP에는 URL에서 쿼리 문자열을 가져온 다음 쿼리 문자열을 구문 분석하기위한 내장 함수가 있습니다. –

답변

2

PHP는 parse_url을 사용하여 URL을 구성 요소로 구문 분석 한 다음 쿼리 문자열에서만 parse_str을 호출하십시오.

$str = "http://localhost/migo2/photo.php?id=68&a_id=83&p_id=349&type=1#p_id=302"; 
$parts = parse_url($str); 
parse_str($parts['query'], $arr); 
echo $arr['type']; 
0

parse-url 함수를 사용하고 PHP_URL_QUERY를 지정하십시오. 그러면 쿼리 부분이 먼저 표시됩니다.

PHP Parse Url btw를 검색 할 때 주로 사용되는 질문입니다. ;)