ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


PHP¿¡¼­ MP3 ÆÄÀÏÀ» Á÷Á¢ ÀÐ°í ½ºÆ®¸®¹Ö Çϱâ
5´Þ Àü
PHP¸¦ »ç¿ëÇÏ¿© MP3 ÆÄÀÏÀ» Á÷Á¢ Àо Ŭ¶óÀ̾ðÆ®¿¡ Àü¼ÛÇÏ·Á¸é, PHP ½ºÅ©¸³Æ®¿¡¼­ ÆÄÀÏÀ» ¿­°í ÀûÀýÇÑ Çì´õ¸¦ ¼³Á¤ÇÑ ´ÙÀ½, ÆÄÀÏÀÇ ³»¿ëÀ» Àоî¾ß ÇÕ´Ï´Ù. ÀÌ·¸°Ô Çϸé Ŭ¶óÀ̾ðÆ®°¡ ÆÄÀÏÀ» Á÷Á¢ ´Ù¿î·ÎµåÇϰųª Àç»ýÇÒ ¼ö ÀÖ½À´Ï´Ù.

´ÙÀ½Àº PHP¿¡¼­ MP3 ÆÄÀÏÀ» Á÷Á¢ Àаí Àü¼ÛÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.

<?php
// ÆÄÀÏ °æ·Î¸¦ °áÁ¤ÇÕ´Ï´Ù.
$file_path = "/media/music.mp3";

// ÆÄÀÏÀÌ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÕ´Ï´Ù.
if (!file_exists($file_path)) {
die("File not found.");
}

// ÆÄÀÏ Å©±â ¹× ÄÜÅÙÃ÷ ŸÀÔ ¼³Á¤
$size = filesize($file_path);
$fp = fopen($file_path, 'rb');
$length = $size;
$start = 0;
$end = $size - 1;

// Ŭ¶óÀ̾ðÆ®ÀÇ ¹üÀ§ ¿äûÀ» ó¸®ÇÕ´Ï´Ù.
if (isset($_SERVER['HTTP_RANGE'])) {
$c_start = $start;
$c_end = $end;

// ¹üÀ§ °ªÀ» ÆĽÌÇÕ´Ï´Ù.
list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
if (strpos($range, ',') !== false) {
header('HTTP/1.1 416 Requested Range Not Satisfiable');
header("Content-Range: bytes $start-$end/$size");
exit;
}

if ($range == '-') {
$c_start = $size - substr($range, 1);
} else {
$range = explode('-', $range);
$c_start = $range[0];
$c_end = (isset($range[1]) && is_numeric($range[1])) ? $range[1] : $size;
}

$c_end = ($c_end > $end) ? $end : $c_end;
if ($c_start > $c_end || $c_start > $size - 1 || $c_end >= $size) {
header('HTTP/1.1 416 Requested Range Not Satisfiable');
header("Content-Range: bytes $start-$end/$size");
exit;
}

$start = $c_start;
$end = $c_end;
$length = $end - $start + 1;
fseek($fp, $start);
header('HTTP/1.1 206 Partial Content');
}

// Çì´õ ¼³Á¤
header('Content-Type: audio/mpeg');
header('Content-Length: ' . $length);
header("Content-Range: bytes $start-$end/$size");
header('Accept-Ranges: bytes');

// ÆÄÀÏÀÇ Æ¯Á¤ ºÎºÐÀ» Àаí Ãâ·ÂÇÕ´Ï´Ù.
while (!feof($fp) && ($p = ftell($fp)) <= $end) {
set_time_limit(0);
print fread($fp, min(1024 * 16, $end - $p + 1));
flush();
}

fclose($fp);
exit();
?>

MP3 ÆÄÀÏÀ» Á÷Á¢ ºÒ·¯¿À´Â °Í°ú PHP¸¦ ÅëÇØ Àоî¿À´Â °Í »çÀÌ¿¡´Â Æ®·¡ÇÈ ¾ç ÀÚü¿¡´Â Â÷ÀÌ°¡ ¾øÁö¸¸, ¼­¹öÀÇ ºÎÇÏ¿Í ÆÛÆ÷¸Õ½º¿¡´Â Â÷ÀÌ°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.

1. Æ®·¡ÇÈÀÇ ¾ç
Æ®·¡ÇÈ ¾çÀº µ¿ÀÏÇÕ´Ï´Ù. Ŭ¶óÀ̾ðÆ®°¡ ¼­¹ö·ÎºÎÅÍ MP3 ÆÄÀÏÀ» ¿äûÇÒ ¶§, Àüü ÆÄÀÏ Å©±â¸¸Å­ÀÇ µ¥ÀÌÅ͸¦ ´Ù¿î·ÎµåÇϹǷÎ, Á÷Á¢ Á¢±ÙÇϰųª PHP¸¦ ÅëÇØ Á¢±ÙÇÏ´õ¶óµµ Àü¼ÛµÇ´Â µ¥ÀÌÅÍÀÇ ¾ç ÀÚü¿¡´Â Â÷ÀÌ°¡ ¾ø½À´Ï´Ù.
2. ¼­¹ö ºÎÇÏ
PHP¸¦ ÅëÇÑ ÆÄÀÏ Àü´ÞÀº ¼­¹ö Ãø¿¡¼­ Ãß°¡ ÀÛ¾÷ÀÌ ¹ß»ýÇϱ⠶§¹®¿¡ ¼­¹ö ºÎÇÏ°¡ ´õ Å®´Ï´Ù. PHP ½ºÅ©¸³Æ®´Â °¢ ¿äû¸¶´Ù ½ÇÇàµÇ¸ç, ÆÄÀÏÀ» ¿­°í Àаí, HTTP Çì´õ¸¦ ¼³Á¤ÇÏ°í, µ¥ÀÌÅ͸¦ Àü¼ÛÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ÀÛ¾÷Àº ¼­¹öÀÇ CPU¿Í ¸Þ¸ð¸® ¸®¼Ò½º¸¦ »ç¿ëÇϹǷÎ, ¿äûÀÌ ¸¹¾ÆÁö¸é ¼­¹öÀÇ ¼º´ÉÀÌ ÀúÇ쵃 ¼ö ÀÖ½À´Ï´Ù.
¹Ý¸é¿¡ MP3 ÆÄÀÏÀ» Á÷Á¢ Á¦°øÇÒ ¶§´Â À¥ ¼­¹ö(Apache, Nginx µî)°¡ ÆÄÀÏÀ» ¹Ù·Î Àü´ÞÇϱ⠶§¹®¿¡ ¼­¹öÀÇ ºÎÇÏ°¡ Àû½À´Ï´Ù. À¥ ¼­¹ö´Â ÆÄÀÏ Àü¼Û¿¡ ÃÖÀûÈ­µÇ¾î ÀÖÀ¸¹Ç·Î, ÈξÀ ´õ È¿À²ÀûÀ¸·Î ÆÄÀÏÀ» ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
3. ij½Ì°ú ¼º´É ÃÖÀûÈ­
Á÷Á¢ Á¢±ÙÀº À¥ ¼­¹öÀÇ Ä³½Ã¸¦ È°¿ëÇÒ ¼ö ÀÖ¾î ´õ ºü¸¨´Ï´Ù. À¥ ¼­¹ö´Â Á¤Àû ÆÄÀÏ(MP3¿Í °°Àº ÆÄÀÏ)À» Á¦°øÇÒ ¶§, ij½Ã¸¦ È°¿ëÇÏ¿© ¼º´ÉÀ» ÃÖÀûÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù.
PHP¸¦ ÅëÇÑ Á¢±ÙÀº ij½ÌÀ» ¼³Á¤ÇÏÁö ¾ÊÀ¸¸é, ¸ðµç ¿äû¿¡¼­ PHP°¡ ´Ù½Ã ½ÇÇàµÇ¾î Ãß°¡ÀûÀÎ ¼­¹ö ÀÚ¿øÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÇÏÁö¸¸, PHP ½ºÅ©¸³Æ®¿¡¼­ ij½Ì Çì´õ¸¦ ¼³Á¤ÇÏ¿© Ŭ¶óÀ̾ðÆ® ¶Ç´Â Áß°£ ÇÁ·Ï½Ã ¼­¹ö°¡ ij½ÌÇϵµ·Ï À¯µµÇÒ ¼ö ÀÖ½À´Ï´Ù.
4. º¸¾È ¹× Á¦¾î
PHP¸¦ ÅëÇÑ Á¢±ÙÀº Ãß°¡ÀûÀÎ º¸¾È ¹× Á¢±Ù Á¦¾î¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, »ç¿ëÀÚ ÀÎÁõ, ´Ù¿î·Îµå Á¦ÇÑ, ·Î±ë µîÀÇ ÀÛ¾÷À» PHP ÄÚµå·Î ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.
Á÷Á¢ Á¢±ÙÀº ±âº»ÀûÀ¸·Î ÀÌ·¯ÇÑ Á¦¾î°¡ ¾î·ÆÁö¸¸, À¥ ¼­¹ö ¼³Á¤À» ÅëÇØ ÀϺΠº¸¾È Á¶Ä¡¸¦ ÃëÇÒ ¼ö ÀÖ½À´Ï´Ù.

°á·Ð
Æ®·¡ÇÈ ¾ç: µ¿ÀÏÇÏÁö¸¸, PHP¸¦ ÅëÇØ Á¢±ÙÇÒ ¶§ ¼­¹ö ºÎÇÏ°¡ Áõ°¡ÇÕ´Ï´Ù.
¼º´É ÃÖÀûÈ­°¡ ÇÊ¿äÇÏ°í ´Ü¼øÈ÷ ÆÄÀÏÀ» Á¦°øÇÏ´Â °ÍÀÌ ¸ñÀûÀ̶ó¸é Á÷Á¢ Á¢±ÙÀÌ ´õ È¿À²ÀûÀÔ´Ï´Ù.
º¸¾È°ú Á¦¾î°¡ Áß¿äÇÑ °æ¿ì¿¡´Â PHP¸¦ ÅëÇØ Á¢±ÙÇÏ´Â °ÍÀÌ À¯¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ç¿ë »ç·Ê¿¡ µû¶ó Á÷Á¢ Á¢±Ù°ú PHP¸¦ ÅëÇÑ Á¢±ÙÀÇ Àå´ÜÁ¡À» °í·ÁÇÏ¿© °áÁ¤ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
ÃßõÃßõ : 26 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,891
ÀÔ·Â Çʵ忡¼­ ƯÁ¤´Ü¾î(¿¹:#err)°¡ Æ÷ÇԵǾúÀ» ¶§ ½Ç½Ã°£ °¨Áö ¹× °æ°íâ ¶ç¿ì±â
2,890
µ¥ÀÌÅͺ£À̽º ÃÖÀûÈ­¿Í Äõ¸® È¿À²¼ºÀ» ³ôÀÌ °Ë»ö ¼º´ÉÀ» °³¼±ÇÏ´Â ¹æ¹ý
2,889
°£´ÜÇÑ °Ô½ÃÆÇ ¸¸µé±â
2,888
PHPÀÇ php.ini ÆÄÀÏ¿¡¼­ ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÁÖ¿ä Ç׸ñµéÀ» Ä«Å×°í¸®º°·Î Á¤¸®
2,887
À¯Æ©ºê µ¿¿µ»óÀÇ ½æ³×ÀÏ À̹ÌÁö¸¦ üũÇÏ¿© À¯È¿ÇÑ ¿µ»óÀ̾ƴҶ§ ¿¬°áµÈ üũ¹Ú½º¸¦ ÀÚµ¿À¸·Î üũ
2,886
À̹ÌÁö URLÀÌ À¯È¿ÇÏÁö ¾ÊÀ» ¶§, ÇØ´ç À̹ÌÁö¿Í ¿¬°áµÈ üũ¹Ú½º¸¦ ÀÚµ¿À¸·Î üũ
2,885
HTTPS·Î Á¢¼ÓÇÑ »ç¿ëÀÚ¸¦ °­Á¦·Î HTTP·Î ¸®µð·º¼Ç ÇÏ·Á¸é
PHP¿¡¼­ MP3 ÆÄÀÏÀ» Á÷Á¢ ÀÐ°í ½ºÆ®¸®¹Ö Çϱâ
2,883
ÇöÀç ÆäÀÌÁö°¡ location.reload()¿¡ ÀÇÇØ »õ·Î°íħµÇ¾ú´ÂÁö
2,882
ÅؽºÆ® ÆÄÀÏÀ» Àаí, °¢ ÁÙÀÇ ³¡¿¡¼­ 6±ÛÀÚ¸¦ »èÁ¦ÇÑ ÈÄ, °á°ú¸¦ »õ·Î¿î ÆÄÀÏ¿¡ ÀúÀåÇÕ´Ï´Ù.
2,881
cURLÀ» »ç¿ëÇÏ¿© ¸®´ÙÀÌ·ºÆ®¸¦ µû¶ó°¡ ÃÖÁ¾ URL °¡Á®¿À±â
2,880
[PHP] $_SERVER ȯ°æº¯¼ö
2,879
10Áø¼ö <-> 16Áø¼ö º¯È¯±â PHP¼Ò½º
2,878
ÅؽºÆ®¿¡ Á÷Á¢ ±×¶óµ¥ÀÌ¼Ç »ö»óÀ» Àû¿ëÇÏ·Á¸é?
2,877
CSS¸¦ »ç¿ëÇÏ¿© ¿ä¼ÒÀÇ ³»¿ë¹°¿¡ µû¶ó width¸¦ Á¶Á¤ÇÏ´Â ¹æ¹ý
2,876
À¥¼­¹ö ip È®ÀÎ
2,875
À¥È£½ºÆÃÀÇ Àý´ë°æ·Î¸¦ È®ÀÎ
2,874
input ÀÔ·Â ÇÊµå ¾ÕµÚ °ø¹é ½Ç½Ã°£ Á¦°Å
2,873
Placeholder Æ÷Ä¿½º½Ã °¨Ãß±â
2,872
MySQL Áߺ¹µÈ µ¥ÀÌÅ͸¦ »èÁ¦
2,871
MySQL Áߺ¹ µ¥ÀÌÅÍ È®ÀÎ
2,870
sessionStorage.getItem ¿Í sessionStorage.setItem
2,869
Á¦ÀÌÄõ¸® ·£´ýÀ¸·Î ¹è°æ»ö º¯°æ
2,868
preg match¿¡ °üÇÑ Á¤±Ô½Ä
2,867
Stream an audio file with MediaPlayer ¿Àµð¿À ÆÄÀÏ ½ºÆ®¸®¹Ö Çϱâ
2,866
Audio Streaming PHP Code
2,865
PHP $ SERVER ȯ°æ º¯¼ö Á¤¸®
2,864
Vimeo (ºñ¸Þ¿À) API ¸¦ »ç¿ëÇÏ¿© Ç÷¹À̾î ÄÁÆ®·ÑÇϱâ
2,863
iframe »ç¿ë½Ã ÇÏ´Ü¿¡ ¹ß»ýÇÏ´Â °ø¹é Á¦°Å¹æ¹ý
2,862
¾ÆÀÌÇÁ·¹ÀÓ(iframe) Àüüȭ¸é °¡´ÉÇÏ°Ô Çϱâ
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.