Archive for June, 2006

홍경민의 모창..

오…
꽤 잘한다.

특히 신승훈과 김종서 목소리가 압권이라는…ㅋㅋ

Read more

FPDF에서 한글 사용하기

fpdf에서는 한글 확장팩을 지원하고 있습니다.
fpdf가 설치된 디렉토리에 아래 파일을 다운받으신후 압축을 풀면 됩니다.

[Download id not defined]

확장팩에는 포함되어있지 않지만 다양한 글꼴을 사용할 수 있도록 ex.php 파일을 다음과 같이 수정했습니다.
명조, 고딕은 기본으로 사용가능 한 것이고, Windows에 설치된 글꼴이라면 다 사용가능합니다. 혹시 없는 글꼴이라해도 기본글꼴로 표현되니까 크게 걱정할 필요는 없을 것 같습니다.

아… “Windows에 설치된 글꼴” 이라는 건 당연히 문서를 보는 클라이언트 PC에 해당하는 사항입니다.

< ?php
require('korean.php');
.
$pdf=new PDF_Korean();
$pdf->AddUHCFont('명조');
$pdf->AddUHCFont('고딕', 'HYGoThic-Medium-Acro');
$pdf->AddUHCFont('돋움', 'Dotum');
$pdf->AddUHCFont('바탕', 'Batang');
$pdf->AddUHCFont('궁서', 'Gungsuh');
$pdf->AddUHCFont('굴림', 'Gulim');
$pdf->AddUHCFont('한겨레결체', '한겨레결체');
$pdf->AddUHCFont('없는글꼴', '없는글꼴');
$pdf->Open();
$pdf->AddPage();
$pdf->SetFont('명조','',16);
$pdf->Write(8,'PHP 3.0은 1998년 6월에 공식적으로 릴리즈되었다. 공개적인 테스트 이후약 9개월만이었다.');
$pdf->Ln();
$pdf->SetFont('고딕','',16);
$pdf->Write(8,"(고딕)고딕글꼴도 나타날 수 있었다.");
$pdf->Ln();
$pdf->SetFont('바탕','',16);
$pdf->Write(8,"(바탕)일단 완전히 새로운 폰트가 추가되지는 않아도...");
$pdf->Ln();
$pdf->SetFont('궁서','',16);
$pdf->Write(8,'(궁서)윈도우즈에 있는 기본적인 글꼴은 가능하다.');
$pdf->Ln();
$pdf->SetFont('굴림','',16);
$pdf->Write(8,'(굴림)글꼴들이 조금 달라보이시나요?');
$pdf->Ln();
$pdf->SetFont('돋움','',16);
$pdf->Write(8,'(돋움)이건 돋움체랍니다.');
$pdf->Ln();
$pdf->SetFont('한겨레결체','',16);
$pdf->Write(8,'(한겨레결체)이건 한겨레결체랍니다.');
$pdf->Ln();
$pdf->SetFont('없는글꼴','',16);
$pdf->Write(8,'(없는글꼴)글꼴이 없으면 기본값인 명조체로 나타납니다.');
$pdf->Output();
$pdf->Ln(); $pdf->Ln();
?>

MySQL Dump 파일 분석함수

parse_sql_dump 함수는 mysql 덤프파일의 내용을 분석해서, 배열로 추출합니다.
배열형태로 추출하므로, DB 변환과 같은 작업에서 유용하게 사용할 수 있을 것 같습니다(사실, 그 용도로 만들었던 겁니다. ^^)

/**
* parse mysql dump sql
*
* created by 행복한고니 (gonom9@gmail.com)
*/
function parse_sql_dump($str)
{
	$data = $cols = array();
	$in_table = $in_quote = false;
	$lines = explode("\n", $str);
 
	foreach ($lines as $line) {
		$line = trim($line);
		if (!$line) continue;
		if (substr($line,0,2) == '--') continue;
 
		if ($in_table === false) {
			if (preg_match('/^CREATE TABLE `?([a-z0-9_]+)`?/i', $line, $match)) {
				$table = $match[1];
				$data[$table] = array();
				$cols[$table] = array();
				$in_table = true;
				continue;
			} elseif (preg_match('/^INSERT INTO ([a-zA-Z0-9_]+) VALUES \(/i', $line, $match)) {
				$table = $match[1];
				$line  = substr($line, strlen($match[0]));
 
				preg_match_all('/\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'|[0-9\.]+|NULL/i', $line, $match);
 
				$arr = array();
				foreach ($match[0] as $key=>$value) {
					if (strtolower($value) == 'NULL') $value = 'NULL';
						$arr[$cols[$table][$key]] = $value;
					}
					$data[$table][] = $arr;
				}
			} elseif ($in_table) {
				if ($line{0} == ')') { $in_table = false; continue; }
				if (preg_match('/`?([a-zA-Z0-9_]+)`? ((tiny|small|big)?int|(var)?char|date(time)?|time(stamp)?|enum|set|(tiny|medium|long)?(blob|text)|year|float|double)/i', $line, $match)) {
					$cols[$table][] = $match[1];
				}
				continue;
			}
	}
	return $data;
}

어떻게 나오는지는 직접 해보시기 바랍니다( 샘플 데이타 만들기 귀찮아서… ( -_-);; )

Page 2 of 41234