2013-09-26 6 views
0

각 쿼리 문자열 값에 함수를 실행합니다 .. dinnerPlate=white&lunchPlate=purple&cup=black나는이처럼 보이는 쿼리 문자열이

나는 또한이 허용 될 수있는 사용 가능한 모든 색상을 보유하고 배열 ..

$availableColors = array("white","black","red","blue","green","pink"); 

내가해야 할 일은 imgsrc을 쿼리 문자열의 올바른 색으로 채우는 것입니다. 예를 들어 .. 나는 그것의 사용 가능한 색상 확인하기 위해 availableColors 배열에 대한 쿼리 문자열 값의 각각을 확인할 수있는 php 기능을 만드는 데 도움이 필요 무엇

<img src="<?php echo $color['dinnerPlate']; ?>.png" class="dinnerPlate" /> 
<img src="<?php echo $color['lunchPlate']; ?>.png" class="lunchPlate" /> 
<img src="<?php echo $color['cup']; ?>.png" class="cup" /> 

. 누군가가 수동으로 "노란색"을 쿼리 문자열에 입력하게하고 싶지는 않습니다. 깨진 이미지를 얻을 것이기 때문입니다. 따라서 누군가가 쿼리 문자열에 "노란색"을 입력하면 함수는 노란색으로 바뀌어 nocolor과 같이됩니다. 또한이 함수는 echo $color['lunchPlate']과 같은 특정 항목의 색상 값을 출력하는 방법을 제공해야합니다.

어떤 안내해 주셔서 감사합니다.

+0

http://php.net/in_array –

+0

그래, 그 기능을 알고 있습니다. 내 문제는 HTML로 출력 할 수 있도록이 모든 것을 하나의 함수로 묶는 것이다. – Dustin

답변

0

먼저 쿼리 문자열을 &,이어서 =까지 분할해야합니다.

$str = 'dinnerPlate=white&lunchPlate=purple&cup=black'; 

$availableColors = array('white','black','red','blue','green','pink'); 
$defaultColor = 'nocolor'; 

foreach (explode('&', $str) as $val) 
{ 
    list($item, $color) = explode('=', $val); 

    $color = in_array($color, $availableColors) ? $color : $defaultColor; 

    $data[$item] = $color; 
} 

이 그럼 당신은 단순히 $data 배열에서 항목을 얻을 : 이런 식으로 뭔가 트릭을 할해야한다.

+0

이것은 굉장합니다. 거의 완벽하게 작동합니다. 아이템 중 하나에 가치가 없는지 어떻게 확인하나요? 지금 가치가 없다면'nocolor'로 설정되지 않습니다. – Dustin

+0

쿼리 문자열의 모양은 무엇입니까? – Mark

+0

내 질문에있는 것과 같습니다. 그러나 실제 페이지에는 색상을 설정하는 약 16 개의 항목이 있습니다. 쿼리 문자열에없는 항목이있는 경우 해당 색상 값을 'nocolor'로 설정하고 싶습니다. – Dustin

관련 문제