2012-01-12 3 views
1

$ _GET []을 사용하여 PHP에서 URL 변수를 얻고 있습니다. URL은 다음과 같습니다 : 배열의 값과 비교 : $y=array('Bauherrenhaftpflicht','Gebäudeversicherung','Büergschaften');

url의 변수가 $ _GET 함수에 의해 디코드되지만 배열과 비교할 때 일치하지 않습니다. .

내가 비교하는 데 사용하는 코드입니다 : 내가 urldecode function을 시도

$x = $_GET['x']; foreach($y as $value){ if($value == $x){ echo "Found!"; } } 

그러나 그것은 작동하지 않습니다.

특수 문자가 올바르게 디코딩되고 변수가 배열과 비교되도록 URL에서 변수를 올바르게 디코딩하는 방법은 무엇입니까?

감사합니다.

$x = utf8_encode(urldecode($_GET['x'])); 

을 그리고 기본 문자 집합 당신이해야 하나 디코딩 밖에있는 특수 문자를 사용하고 있기 때문에 또한/in_array()

if (in_array($x, $y)) { 
echo "Found!"; 
} 
+0

'echo $ _GET [ 'x'];'의 출력은 무엇입니까? – ewok

+0

제 생각에'ü '문자와 관련이 있습니다. –

+0

$ _GET [ 'x']의 결과는 Büergschaften – Adam

답변

2

배열 값 또는 GET 매개 변수 값을 UTF-8로 인코딩

로컬로 테스트 중이며, 저에게 맞습니다 :

$x = utf8_encode(urldecode($_GET['x'])); 
$y=array('Bauherrenhaftpflicht','Gebäudeversicherung','Büergschaften'); 

echo in_array($x,$y); // outputs 1 (true) 

효과가 있으면 알려주세요.

3

을 사용할 수 있어야합니다 코멘트에 게시 된

+0

그게 효과가 있어요. 고맙습니다! – Adam

관련 문제