묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
php에 대한 간단한(;) 질문입니다.
2004.07.29 01:32
페이지에 php를 써서 음악을 넣었습니다.
페이지 명은 music.php이며, 구성은 대충 아래와 같습니다.
$music = array('제목1','제목2','제목3','제목4','제목5') 라는 변수와
$artist = array('가수1','가수2','가수3','가수4','가수5') 라는 변수를 놓았습니다.
그리고 랜덤과 리스트에서의 선택을 위해서
if($no == "") $no = mt_rand(0,sizeof($music) - 1)
라는 변수를 줬습니다.
즉, 페이지를 처음 로딩하거나 랜덤 버튼(no의 값을 없애는 것)을 누르면 $no는 랜덤으로 선택되어집니다.
리스트에서는 곡목마다 링크를 걸고 href="music.php?no=번호" 로 지정을 해두었습니다.
출력부분(echo)에서는
제목 - 가수 형식으로 표시하기 위해
<? echo $music[$no]."<br> - ".$artist[$no]; ?> 로 했습니다.
소스는 재생, 정지를 위해서 윈미플을 이용해서
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" name="Player">
<param name="Filename" value="../music/<? echo $music[$no]; ?>.wma">
</object>
로 뒀습니다.
소스 보면 아시겠지만, 파일은 wma이며 파일명은 전부 제목으로 했습니다.
(관리를 위해서)
즉, $title 와 $artist는 직접 제가 손보면서 수정해야하고(어차피 파일이 많아봤자 복잡하기만 하니까 10개 정도만 해놓을 생각입니다.), 랜덤과 리스트를 위한 것은 $no 로 설정됩니다.
문제는 랜덤입니다.
APM을 설치해서 작업하고 있는데, 자가테스트할때는 랜덤이 균등하게 잘 됩니다.
하지만 계정에 올려서 직접 웹으로 해보니 몇몇 곡만 집중적으로 선택되어져 버리네요.
(분명히 동일한 파일입니다.)
제가 생각한 방법으로는
1. 폼을 이용해서 name="no", value="" 를 music.php로 전송한다.(전송할 것은 이 히든타입 하나 밖에 없습니다.)
2. a를 이용해서 href="music.php?no="
3. 새로고침을 이용해서 onclick="location.reload();"
일단 3번은 속도 문제로 인하여 제외했습니다.
바탕이 검은색인데 새로고침하여 화면이 다 뜰때까지 하얀색으로 비어있는게 영 아니더군요.
위의 문제가 임시 인터넷 파일 때문이 아닐까 해서 새로고침을 해봤습니다만 문제는 마찬가지였고 속도만 느려져서 제외했습니다.
음...
그러니까 질문은
<a href="music.php?no=">랜덤</a>
또는
<form action="music.php" method="get(post도 상관없음"><input type="hidden" name="no" value=""><input type=submit></form>
을 이용하면 임시 인터넷 파일 때문에 랜덤이 제대로 이루어지지 않을 수 있을까요?
그리고 랜덤을 제대로 하기 위해서는 또 어떤 방법이 있을까요?
== 제가 만든 것입니다(스타일 등의 장식은 생략, head에 레이어 컨트롤 자바스크립트 썼습니다.) ===
<?
$music = array('제목1','제목2','+ '+ '제목3','제목4','제목5');
$artist = array('가수1','가수2','가수3','가수4','가수5');
if ($no == "") $no = mt_rand(0,sizeof($music) - 1);
?>
// 위에서 설명한 변수 부분입니다.
<div id="list" style="position:relative; left:0px; top:0px; width:150px; height:130px; z-index:2 ; visibility:hidden">
<div>
1. <a href="music.php?no=0"><? echo $music[0]; ?></a>
[2. ... 3. .... 등등 목록]
</div>
<a onClick="MM_showHideLayers('list','','hide')">CLOSE</a>
</div>
// 리스트는 레이어에 넣어서 리스트 버튼을 클릭하면 보이도록 했습니다. 리스트는 위에서 설명한대로 no= 인 a를 이용했습니다. 하단부에는 리스트 닫는 버튼을 두었습니다.
<table style="position:absolute ; left:0 ; top:0 ; width:150 ; height:130 ; z-index:1">
<tr>
<td>
<object style="visibility:hidden ; height:0 ; width:0" classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" name="Player">
<param name="Filename" value="../music/<? echo $music[$no]; ?>.wma"></object>
<? echo $music[$no]."<br> - ".$artist[$no]; ?>
</td>
</tr>
// 윈도우 미디어 플레이어를 사용했습니다. 소스는 위에서 설명한대로 파일이름.wma로 했죠. 그 밑에는 곡목 - 가수 가 출력됩니다.
<tr>
<td>
<a onclick="Player.play();">ON</a>
<a onclick="Player.stop();">OFF</a>
<a href="music.php?no=">RANDOM</a>
<a onClick="MM_showHideLayers('list','','show')">LIST</a>
</td>
</tr>
</table>
// 재생, 정지 버튼과 랜덤 버튼, 리스트 출력 버튼이 있습니다. 재생, 정지를 위해 윈미플을 이용했습니다.
http://seeker.pe.kr/base/stuff.htm 이 현재 작업중인 곳입니다.
이 소스를 좀 더 최적화 시키고 랜덤을 제대로 할 수 있는 팁을 가르쳐주시면 감사하겠습니다.
페이지 명은 music.php이며, 구성은 대충 아래와 같습니다.
$music = array('제목1','제목2','제목3','제목4','제목5') 라는 변수와
$artist = array('가수1','가수2','가수3','가수4','가수5') 라는 변수를 놓았습니다.
그리고 랜덤과 리스트에서의 선택을 위해서
if($no == "") $no = mt_rand(0,sizeof($music) - 1)
라는 변수를 줬습니다.
즉, 페이지를 처음 로딩하거나 랜덤 버튼(no의 값을 없애는 것)을 누르면 $no는 랜덤으로 선택되어집니다.
리스트에서는 곡목마다 링크를 걸고 href="music.php?no=번호" 로 지정을 해두었습니다.
출력부분(echo)에서는
제목 - 가수 형식으로 표시하기 위해
<? echo $music[$no]."<br> - ".$artist[$no]; ?> 로 했습니다.
소스는 재생, 정지를 위해서 윈미플을 이용해서
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" name="Player">
<param name="Filename" value="../music/<? echo $music[$no]; ?>.wma">
</object>
로 뒀습니다.
소스 보면 아시겠지만, 파일은 wma이며 파일명은 전부 제목으로 했습니다.
(관리를 위해서)
즉, $title 와 $artist는 직접 제가 손보면서 수정해야하고(어차피 파일이 많아봤자 복잡하기만 하니까 10개 정도만 해놓을 생각입니다.), 랜덤과 리스트를 위한 것은 $no 로 설정됩니다.
문제는 랜덤입니다.
APM을 설치해서 작업하고 있는데, 자가테스트할때는 랜덤이 균등하게 잘 됩니다.
하지만 계정에 올려서 직접 웹으로 해보니 몇몇 곡만 집중적으로 선택되어져 버리네요.
(분명히 동일한 파일입니다.)
제가 생각한 방법으로는
1. 폼을 이용해서 name="no", value="" 를 music.php로 전송한다.(전송할 것은 이 히든타입 하나 밖에 없습니다.)
2. a를 이용해서 href="music.php?no="
3. 새로고침을 이용해서 onclick="location.reload();"
일단 3번은 속도 문제로 인하여 제외했습니다.
바탕이 검은색인데 새로고침하여 화면이 다 뜰때까지 하얀색으로 비어있는게 영 아니더군요.
위의 문제가 임시 인터넷 파일 때문이 아닐까 해서 새로고침을 해봤습니다만 문제는 마찬가지였고 속도만 느려져서 제외했습니다.
음...
그러니까 질문은
<a href="music.php?no=">랜덤</a>
또는
<form action="music.php" method="get(post도 상관없음"><input type="hidden" name="no" value=""><input type=submit></form>
을 이용하면 임시 인터넷 파일 때문에 랜덤이 제대로 이루어지지 않을 수 있을까요?
그리고 랜덤을 제대로 하기 위해서는 또 어떤 방법이 있을까요?
== 제가 만든 것입니다(스타일 등의 장식은 생략, head에 레이어 컨트롤 자바스크립트 썼습니다.) ===
<?
$music = array('제목1','제목2','+ '+ '제목3','제목4','제목5');
$artist = array('가수1','가수2','가수3','가수4','가수5');
if ($no == "") $no = mt_rand(0,sizeof($music) - 1);
?>
// 위에서 설명한 변수 부분입니다.
<div id="list" style="position:relative; left:0px; top:0px; width:150px; height:130px; z-index:2 ; visibility:hidden">
<div>
1. <a href="music.php?no=0"><? echo $music[0]; ?></a>
[2. ... 3. .... 등등 목록]
</div>
<a onClick="MM_showHideLayers('list','','hide')">CLOSE</a>
</div>
// 리스트는 레이어에 넣어서 리스트 버튼을 클릭하면 보이도록 했습니다. 리스트는 위에서 설명한대로 no= 인 a를 이용했습니다. 하단부에는 리스트 닫는 버튼을 두었습니다.
<table style="position:absolute ; left:0 ; top:0 ; width:150 ; height:130 ; z-index:1">
<tr>
<td>
<object style="visibility:hidden ; height:0 ; width:0" classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" name="Player">
<param name="Filename" value="../music/<? echo $music[$no]; ?>.wma"></object>
<? echo $music[$no]."<br> - ".$artist[$no]; ?>
</td>
</tr>
// 윈도우 미디어 플레이어를 사용했습니다. 소스는 위에서 설명한대로 파일이름.wma로 했죠. 그 밑에는 곡목 - 가수 가 출력됩니다.
<tr>
<td>
<a onclick="Player.play();">ON</a>
<a onclick="Player.stop();">OFF</a>
<a href="music.php?no=">RANDOM</a>
<a onClick="MM_showHideLayers('list','','show')">LIST</a>
</td>
</tr>
</table>
// 재생, 정지 버튼과 랜덤 버튼, 리스트 출력 버튼이 있습니다. 재생, 정지를 위해 윈미플을 이용했습니다.
http://seeker.pe.kr/base/stuff.htm 이 현재 작업중인 곳입니다.
이 소스를 좀 더 최적화 시키고 랜덤을 제대로 할 수 있는 팁을 가르쳐주시면 감사하겠습니다.