Coding/PHP

(Mysql) PHP를 이용한 RSS 2.0 XML 생성

Miuna3 2016. 4. 15. 23:59


개별적으로 운영하는 포럼 사이트에 사용하는 SCM Player. 
SCM Player가 지원하는 RSS를 이용한 재생목록 생성을 위해, 아무 지식도 없이 
며칠동안 여러 코드를 무작정 분석해 RSS 2.0을 지원하는 XML 생성 PHP를 하나 만들었다.



이 글을 읽기에 앞서, 나는 DB(데이터 베이스)와 crontab을 이용한 RSS 제작방법임을 말해둔다.

\n";

//6. 결과 처리
while($row = mysql_fetch_array($result))
{
	$xml_item = $row['name']; 
	$xml_title = $row['title']; 
	echo $row['name']." ";
	$xmlList.="$xml_title$xml_item"; 
}

$xmlDoc=" $xmlList"; 

//XmlDoc의 내용을 가지고 xml파일 생성하기 
$fp = fopen("/var/www/html/SoundCloud/rss.xml","w"); 
fwrite($fp, $xmlDoc); 
fclose($fp); 
?>

전문가가 이 글을 볼 일이 거의 없을테니, 제일 중요한 (독자가 원하는 부분)을 짚어보겠다.


아래는 SCM Player가 인식할 수 있는 RSS 예시이다.


SCMPlayer는 링크를 따라 갔을때 바로 음악이 재생 될 수 있는 링크형식이여야 한다.  

이해가 잘 되지 않으면 링크를 클릭해보면 이해할것이다.(http://miuna3.asuscomm.com/SoundCloud/uploads/tracks/1125596969_1542649736_1826030225.mp3)

<item>은 rss에서 필수이고, <title>,<link>는 각각 노래 제목과 링크를 달아주어야 한다. 이 두가지를 제외하고는 필요가 없다.

다시 PHP 코드를 보자.
$mysql_hostname = 'Host주소';
$mysql_username = 'DB 계정';
$mysql_password = 'DB 비밀번호';
$mysql_database = 'DB 이름';
$mysql_port = '3306';
$mysql_charset = 'utf8';
위의 코드는 개인의 DB정보에 맞게 수정해주면 된다. Ex) $mysql_username = 'Miuna3';
$query = "SELECT title, name From tracks"; 은 쿼리 명령어를 잠시 담아두는 변수이다. 

해석을 해보자면, 'DB에 있는 tracks테이블의 title과 name의 칼럼을 검색'

데이터 베이스를 보면 title칼럼은 노래 제목, name 칼럼은 파일링크 임을 알 수 있다. 

 $xml_item = $row['name']; // xml_item 은 데이터 베이스 name칼럼을 가져다 쓴다.
 $xml_title = $row['title']; // xml_title 은 데이터 베이스 title칼럼을 가져다 쓴다. 

 $xmlList.="<span style="font-family: '맑은 고딕', sans-serif; color: rgb(0, 0, 0);">$xml_title</span>$xml_item"; // 사이에 들어가는 것은 xml_title 사이는 xml_item


 
//통합 XmlDoc의 내용을 구성 
$xmlDoc=" $xmlList"; 
//XmlDoc의 내용을 가지고 xml파일 생성하기 
$fp = fopen("/var/www/html/SoundCloud/rss.xml","w"); 
fwrite($fp, $xmlDoc); 
fclose($fp); 
?>
여기서 xml확장자로 빈 파일을 미리 그 경로에 업로드 해두고 권한 (chmod 777)로 지정해둔다.

그런다음 터미널을 열고 crontab에 등록해주자.

# crontab -e

한시간에 한번씩 원하는 페이지를 실행
0 * * * * wget -O - -q -t 1 http://경로/제작한PHP이름.php




'Coding > PHP' 카테고리의 다른 글

PHP로 리다이렉트 시키기  (0) 2016.11.13
(Mysql) DB연결 PHP작성  (0) 2016.11.13
(MySQLi) DB연결 PHP 작성  (0) 2016.11.13
PHP로 폴더안의 음악파일 목록 rss2.0 XML 만들기  (0) 2016.11.13