| 제목을 '랜덤하게 이미지를 표시하기' 라고 쓸려다가. 그냥 이쪽이 더 맞는거 같아서..
이미지 여러개를 골라놓고. 그 중에 아무 이미지나 하나만 임의로 선택하게 해서 띄우고 싶을 때가 있습니다. 이걸 홈페이지에다 써먹는다면, 들어갈 때 마다 다른 사진을 하나씩 띄우는것도 되겠지요.
원래 이건 자바스크립트로 하는게 더 간단합니다. 주로 자바스크립트를 쓰지요. 근데 자바스크립트에 대해 바르게 공부해 본 적이 없는 저는 역시 php 로 땜질 해야 했습니다. <? $images = array('1.gif','2.gif','3.gif','4.gif','5.gif','6.gif','7.gif','8.gif');
srand ((double)microtime()*1000000);
shuffle($images);
echo "<img src='".$images[0]."' border='0'>"; ?>
이것도 뭔가 알아서 척척척 아무거나 골라주는 함수가 있을 법 한데. 흠.
$images 라는 변수 안에 이미지 파일의 이름들을 배열로 집어 넣습니다.
그다음 난수를 적당히 적당히(srand, microtime 등등) ... 근데 저것도 레퍼런스에 나와있는 예제에 보니깐 난수 관련해선 다 저게 들어가길래 넣은겁니다. 땜질에 이은 짜집기.
shuffle() 은 배열을 섞어주는 함수입니다. 순서없이 그냥 휘저어 주는 녀석입니다.
shuffle() 을 하고 나면 위에 $images 배열이 (1.gif, 2.gif 3.gif....) 이던 것이 그냥 순서가 다 섞여버립니다. (6.gif, 8.gif, 1.gif ....) 이런식으로 되어 있을 수 있다는 거지요. 어떻게 섞여 있는지는 배열을 출력해 보면 알게 됩니다.
그 다음줄의 echo에서 $images 배열의 [0] 번에 해당되는 것만 출력합니다. -_-
젠장 허접해라;
그러니깐 사실 섞어주는거 따로, 고르는거 따로인 허접한 소스인데, 고르는건 제목대로 랜덤이 아니라 무조건 [0]번만 고르는 겁니다. 카드를 실컷 섞고 제일 앞장만 뒤집어 보는거랑 같다고 해야 할지... '아무거나 한 개만 보면 된다'는 목적으론 충분하지만 배열 안의 나머지 녀석들의 존재는(...)
섞을때마다 순서가 틀려지니 [0] 번에 오는 녀석도 틀려질 테고, 결과적으로 새로 고침 할 때 마다 다른 이미지가 뜬다! 목적달성! 따지지 말자!
|