PHP 프로그래밍

본문 바로가기
사이트 내 전체검색


Web Programming >> PHP Programming
[목차]
제4장 파일처리 프로그램

    5. Music Box

단계 1. 디렉토리 구조

musicbox/라는 디렉토리를 만들고, 하위 디렉토리로 play/와 gayo/, oldpob/이라는 디렉토리를 만든다. 아래와 같은 디렉토리 구조가 된다.

musicbox/
   |
   +---- play/
   |
   +---- gayo/
   |
   +---- oldpop/
   |
   +---- index.html
   |
   +---- menu.html


play/디렉토리의 권한설정을 707로 바꾼다. 메모장에서 index.html과 menu.html을 만들어, musicbox/디렉토리 밑에 올린다.

 



단계 2. 실행 프로그램 짜기(index.html)


<?
if($task == "gayo") $title = "가요 세상";
else if($task == "oldpop") $title="Greatest Hits Pop Song";
?>
<html>
<head>
<title><?echo("$title");?></title>
   <style type="text/css">
   <!--
   a:link,a:visited,a:active {
      text-decoration : none;color:red;
   }
   a:hover {
      text-decoration : underline;
      color : blue;
   }
   TABLE, TD, TR, TH {
      font-size : 10pt;color:black;
   }
   //-->
   </style>

</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red" 
<? if($play == "yes") echo("onUnload=\"logout()\"");?> 
oncontextmenu="return false">

<?
include("menu.html");

$php_self = $PHP_SELF;
if($task == "") $task = "gayo";

if($play == "yes" ) { 
	if($play_file_name == "") {
	   	echo("<meta http-equiv='Refresh' content='0; URL=./?task=$task'>");
	}
	
	$play_file = "./play/".$play_file_name;

//echo("$play_file");
   	if(!file_exists($play_file)) 
    	{
            		$tempfp = fopen($play_file, 'w');
            		fclose($tempfp);
    	}
	if(!is_array($song)) {
	   	echo("선택된 노래가 없습니다. 노래 선택 화면으로 이동합니다.");
		echo("<meta http-equiv='Refresh' content='2; URL=./?task=$task'>");
		exit;
	}
	if($shuffle == "Y"){
		srand(time());
		shuffle($song);
	}
  if($playfp = fopen($play_file, 'a'))   {
	$i=0;
	while(each($song)) {
 	  if(strcmp($song[$i],"")) {
		$comment = $song[$i];
   		$comment = "http://leelab.co.kr/~jklee/musicbox/".$task."/".$comment;
   		fwrite($playfp, $comment, strlen($comment));
   	  }
	  fwrite($playfp, "\n", strlen("\n"));
   	  $i++;		
	}
	fclose($playfp);
  }
  else {
    echo("$play_file 을 열 수 없습니다.");
    exit;
  }
 	if($loop == "Y") $loop="true";
 	else $loop="false";
	
	if($autostart == "") $autostart = "true";

?>
<SCRIPT LANGUAGE="JavaScript">
<!-- HIDE FROM OTHER BROWSER

function logout() {
 location.href="<?echo("./?task=$task")?>&play=no&play_file_name=<?echo("$play_file_name");?>";
}
// STOP HIDING -->
</SCRIPT>

<center>
<font size=5 face=굴림><?echo("$title");?></font>

<p><embed src="<?echo("$play_file");?>" width="0" height="0" border="0" hidden="true" 
 autorewind="true" autostart="<?echo("$autostart");?>" loop="<?echo("$loop");?>" 
 type="application/x-mplayer2" ><br></p>
<p>&nbsp;잠시 기다리시면 음악이 나옵니다.</p>
<font size=2>
<a href="<?echo("./?task=$task")?>">목록으로 가기</a>
</center>

<?
}
else if($play == "no") {

   if($play_file_name != "") {
   	$play_file = "./play/".$play_file_name;
   	unlink($play_file);
   }
   echo("<meta http-equiv='Refresh' content='0; URL=./?task=$task'>");
   

}
else {

	$new_play = time();
	$play_file_name = $new_play.".m3u";

?>
   <script language="javascript">
<!--
function profileWindow(ref) {
   var window_left = (screen.width-300)/2;
   var window_top = (screen.height-100)/2;   
   window.open(ref,"profileWin",'width=300,height=100,status=no,scrollbars=auto,
   top=' + window_top + ',left=' + window_left + '');
}

function start_music() {
	signform.submit();
}

function select_all() {
	signform.play.value = "all";
	signform.submit();
}

function clear_all() {
	signform.play.value = "";
	signform.submit();
}

//-->
</script>

<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 width="600" align=center>
		<form name="signform" method="post" action="./">
		<input type='hidden' name='task' value='<?echo("$task");?>'>
		<input type='hidden' name='play' value='yes'>
		<input type='hidden' name='play_file_name'
		value='<?echo("$play_file_name");?>'>
<TR><TD colspan=2 height=50 align=center>
<font size=5 face=굴림><?echo("$title");?></font>


</td>
</tr>
<TR><TD colspan=2 height=50 >
&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
<input type="button" value=" Play " onclick="start_music()"> &nbsp; &nbsp;&nbsp;
<input type="button" value=" 전체선택 " onclick="select_all()">&nbsp; &nbsp;&nbsp;
<input type="button" value=" 선택 취소 " onclick="clear_all()">&nbsp; &nbsp;&nbsp;
<input type="reset" value=" 다시 선택 " >

</td>
</tr>

<TR><TD width=25 >
<input type="checkbox" name="loop" value="Y"> </td>
<td> <font size=2 color=blue>반복해서 들으시려면, 선택하세요.
</td>
</tr>
<TR><TD width=25>
<input type="checkbox" name="shuffle" value="Y"> </td>
<td> <font size=2 color=blue>랜덤으로 들으시려면, 선택하세요.
</td>
</tr>

<?

$dirptr = opendir("./".$task);
if($dirptr) {
	$song_total_num=0;
	while($song_name[$song_total_num] = readdir($dirptr)) {
		if(!(strcmp($song_name[$song_total_num],".") && 
		     strcmp($song_name[$song_total_num],".."))) continue;
		$song_total_num ++;
	}
	sort($song_name);

	for($i=1;$i<=$song_total_num; $i++) {
		$filename = explode(".", $song_name[$i]);
?>
<TR><TD width=25 height=20>
<input type="checkbox" name="song[]" value="<?echo("$song_name[$i]");?>" 
	<?if($play =="all") echo(" checked");?>> </td>
<td><?echo("$filename[0]");?></td>
</tr>
<?
	}
	closedir($dirptr);
}
else echo("오류가 있습니다.");
?>

<TR><TD colspan=2 height=50 >
&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
<input type='hidden' name='song_total' value='<?echo("$song_total_num");?>'>
<input type="button" value=" Play " onclick="start_music()"> &nbsp; &nbsp;&nbsp;
<input type="button" value=" 전체선택 " onclick="select_all()">&nbsp; &nbsp;&nbsp;
<input type="button" value=" 선택 취소 " onclick="clear_all()">&nbsp; &nbsp;&nbsp;
<input type="reset" value=" 다시 선택 " >

</td>
</tr>
</form>
</table>
<p>&nbsp;</p>
<?
}
?>
</body>
</html>





 

3. 메뉴( menu.html )


<TABLE border=0 align=center width=500>
<TR>
	<TD><A HREF="./?task=gayo">가요세상</A>&nbsp;&nbsp;&nbsp;
	<A HREF="./?task=oldpop">Greatest Hits Pop Song</A>&nbsp;&nbsp;&nbsp;
	</TD>
</TR>
</TABLE>

<hr size=1>

기타 추가사항이 있으면, 참고하여 수정하세요

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.