Coding/PHP

PHP로 폴더안의 음악파일 목록 rss2.0 XML 만들기

Miuna3 2016. 11. 13. 21:24




<?php 

 $path = "./Club";

 $dirs = dir($path);

 $d = ".";

 $ud = "..";


while(false !== ($entry = $dirs->read())){ 

if(is_file($path . "/" . $entry)){

$entry=preg_replace('/&(?!#?[a-z0-9]+;)/', '&amp;', $entry);

if($entry==" .. "){$entry=="asdfg";}

$xml_item = "http://도메인/Music/Club/".$entry; 

$xml_title = $entry; 

echo $entry." "."http://도메인/Music/Club/".$entry." ";

$xmlList.="<item><title>$xml_title</title><link>$xml_item</link></item>"; 

    }

 } 


$xmlDoc="<?xml version='1.0' encoding='utf8'?> <rss version='2.0'><channel>$xmlList</channel></rss>"; 

$fp = fopen("./rss.xml","w"); 

fwrite($fp, $xmlDoc); 

fclose($fp);


 ?>



기본 베이스만 추출하였다.

경로에 제목이 &같은 명령어 형식을 문자 형태로 바꿔주기 위하여 $entry=preg_replace('/&(?!#?[a-z0-9]+;)/', '&amp;', $entry) 를 사용.

if(is_file($path . "/" . $entry)) 를 사용하지 않고 작성하면, 파일 내부의 현재 디렉토리와 상위 디렉토리의 심볼릭 링크 . 와 ..가 같이 XML에 작성되어 버린다.

SCM 플레이어에 사용할 사람들은 if(is_file($path . "/" . $entry))를 꼭 추가해주도록 하자.



파일 이름이 한글이 있는 경우, 한글이 깨져서 인코딩 에러가 표시된다. 그때에는 인코딩 종류를 encoding='EUC-KR' 로 지정해주도록 한다.



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

PHP로 리다이렉트 시키기  (0) 2016.11.13
(Mysql) DB연결 PHP작성  (0) 2016.11.13
(MySQLi) DB연결 PHP 작성  (0) 2016.11.13
(Mysql) PHP를 이용한 RSS 2.0 XML 생성  (0) 2016.04.15