절

서버의 특정디렉토리의 모든 파일을 읽어서 게시판에 자동등록하는 소스

· 2010-12-12 (일) 02:38:07 · 2612
<?php
//제 게시판이 utf-8입니다.
//윈도우서버인데. 윈도우서버는 기본이 euckr인가 봅니다.
//lib.parse.php 는 제일 하단에 기재 하겠습니다.
//mb_id, mb_name, mb_password, mb_email 의 내용만 자신의 것으로 만드시면 됩니다.
//bo_table의 값을 해당 게시판으로 지정하시면 됩니다.
//dir 는 파일이 위치한 디렉토리 입니다.


header("Content-type:text/html;charset=utf-8");
include_once './_common.php';
include_once $g4['path'].'/lib/lib.parse.php';

//게시판의 이름을 지정합니다.
$bo_table= 'adult1';
$html = 'html1';
$write_table ="g4_write_$bo_table";

//실제로 읽어 들일 디렉토리의 경로입니다.
$dir = $g4['path'].'/softmovie4/';


$dr = opendir($dir);

if($dr == true):
while(($file = readdir($dr)) ==true):

$src_file = $dir.$file;

if($file == '' || $file == '.' || $file == '..' || is_file($src_file) == false)
continue;
$file = iconv("euc-kr", "utf-8",$file);
$dest_name = get_unique_file($file);
$file = urldecode($file);



$save_files = $dest_name;
//파일을 지정할 경로

$file_name = $g4['path']."/data/file/$bo_table/$save_files";

@copy($src_file, $file_name);

if(is_file($file_name)==false)
continue;



$upload[0]['image'] = $g4['path']."/data/file/$bo_table/$save_files";
$upload[0][source] = $file;
$upload[0][filesize] = filesize($upload[0]['image']);
$upload[0][file] = $save_files;


/** 디비에 입력하는 부분 ****/
$wr_num = get_next_num($write_table);
$wr_reply = "";


$save_title = addslashes(strip_tags($file));

$wr_subject= $save_title;
$wr_content = $save_title;


$sql = " insert into $write_table
set wr_num = '$wr_num',
wr_reply = '$wr_reply',
wr_comment = 0,
ca_name = '$ca_name',
wr_option = '$html,$secret,$mail',
wr_subject = '$wr_subject',
wr_content = '$wr_content',
wr_link1 = '$wr_link1',
wr_link2 = '$wr_link2',
wr_link1_hit = 0,
wr_link2_hit = 0,
wr_trackback = '$wr_trackback',
wr_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = 'admin_id',
wr_password = 'admin_password',
wr_name = 'admin_name',
wr_email = 'adin_email',
wr_homepage = '',
wr_datetime = now(),
wr_last = now(),
wr_ip = '$_SERVER[REMOTE_ADDR]',
wr_1 = '$file',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10 = '$wr_10' ";

$que_result = @mysql_query($sql);


if($que_result=true):


$wr_id = mysql_insert_id();


$sql = " insert into g4_board_file
set bo_table = '$bo_table',
wr_id = '$wr_id',
bf_no = '0',
bf_source = '{$upload[0][file]}',
bf_file = '{$upload[0][file]}',
bf_content = '{$bf_content[0]}',
bf_download = 0,
bf_filesize = '{$upload[0][filesize]}',
bf_width = '{$upload[0][image][0]}',
bf_height = '{$upload[0][image][1]}',
bf_type = '{$upload[0][image][2]}',
bf_datetime = '$g4[time_ymdhis]' ";


mysql_query($sql);



// 부모 아이디에 UPDATE
mysql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

// 새글 INSERT
//sql_query(" insert into $g4[board_new_table] ( bo_table, wr_id, wr_parent, bn_datetime ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]' ) ");
mysql_query(" insert into g4_board_new ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '$bo_table', '$wr_id', '$wr_id', '$g4[time_ymdhis]', '$member[mb_id]' ) ");

// 게시글 1 증가
mysql_query("update g4_board set bo_count_write = bo_count_write + 1 where bo_table = '$bo_table'");
endif;
endwhile;
closedir($dr);
endif;

?>


/lib.parse.php 의 내용
<?php
//파일의 확장자를 구하는 함수
function get_extension($file){
return strtolower(substr(strrchr($file,"."),1));

//파일의 확장자를 구하는 함수

$info = @getimagesize($file);
if(!$info)
return '';
switch($info[2]) {
case 1:
return 'gif';break;
case 2:
return 'jpg';break;
case 3:
return 'png';break;
case 4:
return 'zip';break;
case 5:
return 'hwp';break;
case 6:
return 'doc';break;
case 7:
return 'xls';break;
case 8:
return 'ppt';break;
default :
return '';
}
}
//임시 번호를 생성하는 함수
function get_unique_code($prefix = ""){
$prefix = $prefix ? $prefix : "mk_";

return $prefix.mt_rand(10000, 99999).'_'.mt_rand(10000, 99999);
}
function get_unique_file($file){
$ext =get_extension($file);
$code= get_unique_code();
return $code.'.'.$ext;

}


//flag는 리눅스 인지, 윈도우인지, 리눅스의 경우 false, 윈도우의 경우 true
function fsockopen_func($url) {
$url_arr = parse_url($url);
$request = $url_arr['host'];
$get_value = $url_arr['path'].'?'.$url_arr['query'];
$fp = fsockopen($request, 80, $errno, $errstr, 3);
if (!$fp) {
return false;
} else {
$out = "GET $get_value HTTP/1.1\r\n";
$out .= "Host: $request\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$content .= fgets($fp, 128);
}
fclose($fp);
$content_arr = explode("\r\n\r\n", $content);

if($content_arr[1] ==false)
return '';
else
return $content_arr[1];
}
}

//잡코리아를 파싱하는 경우
function fsockopen_func_jobkorea($url, $flag= true) {
$url_arr = parse_url($url);
$request = $url_arr['host'];
$get_value = $url_arr['path'].'?'.$url_arr['query'];
$fp = @fsockopen($request, 80, $errno, $errstr, 5);


if (!$fp) {
return '';
} else {
$out = "GET $get_value HTTP/1.1\r\n";
$out .= "Host: $request\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$content .= fgets($fp, 128);
}
fclose($fp);

if(preg_match("/HTTP\/1\.1 200/", $content)==false)
return '';

//echo "done";

$content_arr = explode("\r\n", $content);


return $content_arr;

}
}
//알바몬을 파싱하는 경우
function fsockopen_func_albamon($url, $flag= true) {
$url_arr = parse_url($url);
$request = $url_arr['host'];
$get_value = $url_arr['path'].'?'.$url_arr['query'];
$fp = @fsockopen($request, 80, $errno, $errstr, 5);


if (!$fp) {
return false;
} else {
$out = "GET $get_value HTTP/1.1\r\n";
$out .= "Host: $request\r\n";
$out.= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$content .= fgets($fp, 128);
}
fclose($fp);

if(preg_match("/HTTP\/1\.1 200/", $content)==false)
return '';



$content_arr = explode("<?xml", $content);

return $content_arr[1];


}
}
?><div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:16:08 PHP & HTML에서 이동 됨]</div>
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
12-01-22 조회 3,706
12-01-21 조회 3,059
12-01-19 조회 4,906
12-01-18 조회 2,910
12-01-18 조회 2,864
12-01-18 조회 3,057
12-01-17 조회 2,844
12-01-17 조회 3,115
12-01-14 조회 1.1만
12-01-14 조회 3,637
12-01-14 조회 3,959
12-01-11 조회 3,407
12-01-11 조회 3,139
12-01-11 조회 3,134
12-01-11 조회 3,242
12-01-11 조회 3,458
12-01-11 조회 2,779
12-01-10 조회 3,089
12-01-10 조회 2,892
12-01-10 조회 2,927
12-01-09 조회 2,910
12-01-08 조회 2,998
12-01-07 조회 2,983
12-01-06 조회 2,724
12-01-06 조회 2,847
12-01-05 조회 2,838
12-01-02 조회 2,988
11-12-29 조회 2,980
11-12-28 조회 2,950
11-12-28 조회 2,858
11-12-27 조회 3,076
11-12-23 조회 2,821
11-12-23 조회 2,948
11-12-21 조회 3,951
11-12-21 조회 2,980
11-12-19 조회 2,915
11-12-14 조회 4,338
11-12-08 조회 3,481
11-12-08 조회 4,111
11-12-07 조회 4,390
11-12-06 조회 4,294
11-12-06 조회 3,683
11-12-05 조회 3,323
11-12-05 조회 4,924
11-12-04 조회 3,314
11-12-03 조회 3,624
11-12-02 조회 3,557
11-12-02 조회 3,539
11-12-02 조회 2,876
11-12-01 조회 2,863
11-12-01 조회 3,745
11-12-01 조회 2,829
11-11-29 조회 5,706
11-11-23 조회 3,636
11-11-23 조회 3,981
11-11-22 조회 3,969
11-11-22 조회 3,027
11-11-21 조회 3,558
11-11-21 조회 2,861
11-11-18 조회 3,967
11-11-18 조회 3,100
11-11-17 조회 2,984
11-11-17 조회 2,997
11-11-17 조회 4,579
11-11-11 조회 2,856
11-11-11 조회 2,851
11-11-11 조회 3,980
11-11-11 조회 4,686
11-11-08 조회 2,981
11-11-06 조회 3,431
11-11-06 조회 3,732
11-10-21 조회 2,531
11-10-21 조회 2,449
11-10-19 조회 2,511
11-10-19 조회 4,026
11-10-08 조회 2,551
11-10-06 조회 4,245
11-10-01 조회 2,643
11-09-30 조회 2,619
11-09-29 조회 2,605
11-09-26 조회 2,476
11-09-23 조회 2,488
11-09-23 조회 2,231
11-09-22 조회 2,808
11-09-09 조회 3,125
11-08-30 조회 4,200
11-08-23 조회 2,241
11-08-12 조회 2,441
11-08-04 조회 4,001
11-07-01 조회 2,981
11-06-09 조회 2,618
11-05-17 조회 2,742
11-05-07 조회 2,997
11-04-21 조회 2,685
11-04-12 조회 2,545
11-04-11 조회 3,628
11-02-11 조회 2,745
11-02-08 조회 2,224
11-01-11 조회 2,595
10-11-26 조회 3,920