MPoD 용 이미지파일 추출 스크립트

Note 의견이 없습니다 »

임시로 대충 짜집기하여 만든것.

<?php
require_once('getID3/getid3/getid3.php');
 
$folderName = "/var/www/Music/".urldecode(dirname($_SERVER['QUERY_STRING']));
 
$d = dir($folderName);
while(false !== ($entry = $d->read())) {
	if( $entry == '.' || $entry == '..' ) continue;
	if( isMusicFile($entry) ) {
		getImage($folderName.'/'.$entry);
		$d->close();
		exit;
	}
}
$d->close();
 
function getImage($filename) {
	$getID3 = new GetID3;
	$getID3->option_tag_id3v2 = true; # Don't know what this does yet 	
	$getID3->option_tags_images = true;
	$getID3->analyze($filename);
 
	$cover = null;
	$mimetype = null;
 
	if (isset($getID3->info['id3v2']['APIC'][0]['data'])) {
	    $cover = $getID3->info['id3v2']['APIC'][0]['data'];
	} elseif (isset($getID3->info['id3v2']['PIC'][0]['data'])) {
	    $cover = $getID3->info['id3v2']['PIC'][0]['data'];
	} elseif (isset($getID3->info['comments']['picture'][0]['data'])) { // for m4a 
		$cover = $getID3->info['comments']['picture'][0]['data'];
		$mimetype = $getID3->info['comments']['picture'][0]['image_mime'];
	}
 
	if( !$mimetype ) {
		if (isset($getID3->info['id3v2']['APIC'][0]['image_mime'])) {
		    $mimetype = $getID3->info['id3v2']['APIC'][0]['image_mime'];
		} else {
		    $mimetype = 'image/jpeg'; 
		}
	}
 
	if (!is_null($cover)) { 
		header("Content-Type: " . $mimetype); 
		if (isset($getID3->info['id3v2']['APIC'][0]['image_bytes'])) { 
			header("Content-Length: " . $getID3->info['id3v2']['APIC'][0]['image_bytes']); 
		} 
		echo($cover); 
	}
}
 
function isMusicFile($filename) {
	$tmp = pathinfo($filename);
	if( $tmp['extension'] == 'm4a' || $tmp['extension'] == 'mp3' ) return true;
	else return false;
}
?>

Goodbye 2010

Note 의견이 없습니다 »

딱 1년전 “Goodbye 2009″ 를 포스팅했던 때가 기억난다.
바로 지금 이자리에서 키보드를 두드리던 기억이 이리도 생생한데 벌써 일년이 지났다니! 하긴 지난 365일을 돌아보면 짧지만은 않은 해 였던것 같기도 하다. 빠듯한 프로젝트들, 새로운 분야로의 사업확장, 무엇보다 재환이의 탄생. 어떻게 보면 정신은 없었지만 가장 안정스럽고 열심히 보낸 한해가 아닌가 싶기도 하고..

작년과 마찬가지로 나에게있어 2010년은 어떤해였는지 잠깐 생각해보는 시간을 갖어보자.
나머지 계속 읽기 »

Goodbye 2009

Note 의견이 없습니다 »

한해의 마지막 날, 한두번도 아닌데 매번 의미있는 날로 만들기 위해 모두들 난리다. 물론 사람이 살면서 이 날을 100번 맞이하기 힘들다는것을 생각해보면 그리 의미없는 날도 아니리라.

여기저기 올해의 사건 BEST를 꼽느라 들썩거리고 그 소재는 다양했지만 분명했다. 그만큼 큼지막한 대형이슈가 많았던 한해였다. 나에게는 그중 어떤것이 가장 큰 의미가 있었는지 잠깐 생각해봤다.

아무래도 사회적 이슈라면 전직 두 대통령의 서거가 아닌가 싶다.
20대초반까지 존경하는 사람의 명단에 가장 먼저 올랐던 김대중대통령과 지금까지 가장 바람직한 정치인으로 생각하는 노무현대통령의 죽음은 참으로 안타까운 사건이다. 이 “존경” 이나 “바람직한” 의 단어에는 정치적인 이유보다는 지도자층 인간으로서의 영역이 많이 차지한다. 이 나라를 위해, 대한민국의 민주주의를 위해 한평생 노력한 김대중 대통령에게 다시 한번 깊은 감사와 존경을 보내고 썩을대로 썩은 이나라 정치와 잘못된 관행을 부수기 위해 외로운 싸움을 지켜나간 노무현 대통령에게 박수와 위로를 보낸다. 두분 모두 한평생 수고하셨습니다.

물론 개인적으로도 많은 일들이 있었다.
그런데 조금 의아한것은 내가 1년전에 계획했던것들이 올 한해 잘 지켜졌는지에 대한 물음에 이도 저도 아닌 대답이다. 너무나도 두리뭉실하고 포괄적 계획이었던것이다. 하는 일잘되고, 건강하고, 열심히 살고… 이게 뭔지 :(
내년 한해는 조금더 구체적인 계획을 세워 1년뒤 이곳에 글을 적을땐 나자신에게 질책도 하고 칭찬도 할 수 있는 거리를 만들어 봐야겠다.

어찌되었든 2009년은 이렇게 내 삶속에 녹아 과거라는 이름으로 저물어 간다.

Goodbye 2009!

역시 KT 의 서비스는..

Note 의견이 없습니다 »

최악이다.

거슬러 올라가 약 10여년전, 한참 호출기(일명 삐삐)에서 휴대전화(PCS)로 넘어가는 시점에 시티폰이라는 발신전용 단말기가 나온적이 있다. 예상보다 빠른 PCS의 보급으로 실패한 대표적인 아이템인 시티폰. 시티폰이 말기를 예고할즈음, 재고처리와 일시적인 사용자 확보를 위해 삐삐가격으로 시티폰을 보급한적이 있었는데 나도 학교앞 노상에서 그냥 거의 공짜와 다름없이 저렴하게 구입했다. 하지만 몇달후 시티폰을 분실하고 서비스 중지신청을 하였다.

그리곤 까마득하게 잊어버리고 입대를 하고 제대를 하고 약 5년이 지난 어느날, 시골집으로 뭔가가 날아왔는데 그때 서비스중지는 3개월만에 해제되고 그 이후로 기본료가 계속 부과되었고, 그 비용이 연체되었다며 채권을 신용정보회사에 넘긴다는 통보장이었다.
이게 무슨 말인가. 화가나 KT 를 상대로 내 권리를 찾는 방법을 알아보고 실행했는데 이과정에서 나는 KT에게 정이 다 떨어졌다. 정말 기본적인 것 하나 알아내는데 전화를 수통해야하는건 물론이고, 전화거는곳마다 말은 다 달랐다. 결국 나의 승리로 돈은 내지 않았지만 다시는 KT를 이용하지 않겠노라 다짐했다.
나머지 계속 읽기 »

이 무슨 귀신 씨나락 까먹는 소리

Note 의견이 없습니다 »

인간적으로 배려하고 사정을 딱히 여겨 도와주었더니 돌아오는게 뒤통수..

난 맹자의 성선설을 지지하고 선함은 더 나은 세상을 위한 옵션이 아닌 지금세상의 필수요건이라고 생각한다. 그런데 세상에는 지독히도 이기적이고 자신의 궁지에서 벗어나기 위해 다른사람의 안위는 조금도 배려하지 않는 종족들이 있다. 더군다나 이런 특성이 강한 인간일 수록 다른 사람은 그가 그런 인간일거라 생각하지 못한다는 것이다.

모처럼 인간에 깊이 실망하고 그 이기심에 치를 떤다. 쓰레기 같은 인간이라고.

지금 큐블로 인지 뭔가 만들고 있다고 하는데, 그런 정신으로 만든 상품이 과연 사람들에게 진정 어필할 수 있을것이라 생각하는지 의심스럽다. 개발은 무언가에게 시도하는게 아니라 자기 자신에게 시도한 후 그 결과물을 다른곳에서 받는것이다.

재고 따지는것 딱 질색이지만, 사람을 배려할땐 그 사람의 그릇을 다시한번 살펴봐야한다는 교훈을 느끼고 있는 중이다.

WP Theme & Icons by N.Design Studio
Entries RSS Log in