사용한 함수는 몇 개 안 됩니다.
이용한 원리도 간단합니다.
저는 아는게 별로 없어서 소스가 약간 허접합니다.
그리고 아직 몇일 밖에 돌려 보지 않아서 약간의 버그가 있을지 모릅니다.
메이져 신문은 검색 과정이 쬐끔 까다로웠으나 나머지들은 엄청 간단합니다.
그리고 너무 많은 페이지를 읽어오다 보니 한번 실행하는데 시간이 꽤 걸립
니다.
그래서 파일에 저장을 해 두게끔 했습니다.^^
작동되는 모습은 제 홈에 오면 볼 수 있습니다.
<?
//
// 각 페이지의 패턴을 분석한 최근 신문만평 가져오기
// made by 0172
// http://0172.kr.kg (http://lp1001.snu.ac.kr/~parkmc2) // last update 2003.01.10
//
//////////////////////// 날짜설정
$now = time();
$yesterday = $now - 86400;
$today_date = date("Ymd",$now);
$today_date_1 = date("Ym/d",$now);
$today_date_2 = date("Y/m",$now);
$today_date_3 = date("Y/md",$now);
$yesterday_date = date("Ymd",$yesterday);
$yesterday_date_1 = date("Ym/d",$yesterday);
$yesterday_date_2 = date("Y/m",$yesterday);
$yesterday_date_3 = date("Y/md",$yesterday);
//////////////////////////////////////// 한겨레 비교적 간단한 편
$url = "http://www.hani.co.kr/section-011000000/home01.html";
$data = join("", file($url));
$temp = split("href|src|background",$data);
$size = sizeof($temp);
$mark = chr(34); // 큰따옴표
$mark_1 = chr(32); // 공백
$mark_2 = chr(39); // 작은 따옴표
for($i=1; $i < $size; $i++){
$seek = strstr($temp[$i],"=$mark"); // (=")로 시작하는 문자욜 검색
$seek = substr("$seek",0,strpos($seek,"gm.jpg")+2); // (gm.jpg)로
끝나는 문자열 검색해서 (.jpg)전까지 추출
$seek = ereg_replace("=","",$seek); //
$seek = ereg_replace("$mark","",$seek); // 불필요한 (=)과 (")를 없
애고
$seek = ereg_replace("gm","gb.jpg",$seek); // (gm)을 (gb.jpg)로 바
꾼다
if ( strlen("$seek") != 0 ) { // 필요없는 문자열 잘라내고
$seek_1 = "<p>:: 한겨레 (장봉군) ::</p><pre><img
src='$seek'</src></pre>";
}
}
/////////////////////// 조선일보(신경무)는 특이해서 루트를 여러번 돌려
줘야 한다
$url = "http://manhwa.chosun.com";
$data = join("", file($url));
$temp = split("href|src|background",$data);
$size = sizeof($temp);
$mark = chr(34); // 큰따옴표
$mark_1 = chr(32); // 공백
$mark_2 = chr(39); // 작은 따옴표
for($i=1; $i < $size; $i++){
$seek = strstr($temp[$i],"/site/data/html_dir/"); // 가능성 있
는 링크 검색
$seek = substr("$seek",0,strpos($seek,"$mark"));
$exact_1 = str_replace("$today_date","seek",$seek);
$exact_2 = str_replace("$yesterday_date","seek",$seek);
if ( $seek != $exact_1 or $seek != $exact_2 ) { // 날짜 비교
$j = $j+1;
$url_real[$j] = "$url$seek"; // 오늘 날짜
와 어제날짜 링크 추출
}
}
for($qqq=1; $qqq < $j+1; $qqq++) { // 추출한 링
크 페이지 읽어오기
$data = join("", file($url_real[$qqq]));
$temp = split("href|src|background",$data);
$size = sizeof($temp);
$mark = chr(34);
$mark_1 = chr(32);
$mark_2 = chr(39);
for($i=1; $i < $size; $i++){
$seek = strstr($temp[$i],"/site/data/img_dir/"); // 이미
지 검색
$seek = substr("$seek",0,strpos($seek,".gif"));
if ( strlen("$seek") != 0 ) {
$exact_1 = str_replace("man","seek",$seek); // 만평 이
미지는 파일명에 man이 들어있으므로...
if ( $seek != $exact_1 ) { // 만평 이
미지만 걸러내기
$seek_2 = "<p>:: 조선일보 (신경무) ::</p><pre><img
src='$url$seek.gif'></src></pre>";
}
}
}
}
///////////////////////////////////// 중앙일보도 나름대로 검색하기 까다
로운 편
$url
= "http://www.joins.com/general/today/t_cartoon/list/general_today_t_ca
rtoon_list.html";
$data = join("", file($url));
$temp = split("href|src|background",$data);
$size = sizeof($temp);
$today = 0;
$yesterday = 0;
for( $i=1; $i < $size; $i++ ) {
$seek_today = str_replace("$today_date","",$temp[$i]);
if ( $seek_today != $temp[$i] ) {
$seek = strstr($temp[$i],"$today_date");
$seek = substr($seek,0,strpos($seek,"4110011501152.html"));
$today = $today+1;
$seek_link_today[$today] = $seek;
} else {
$seek_yesterday = str_replace("$yesterday_date","",$temp
[$i]);
if ( $seek_yesterday != $temp[$i] ) {
$seek = strstr($temp[$i],"$yesterday_date");
$seek = substr($seek,0,strpos($seek,"4110011501152"));
$yesterday = $yesterday+1;
$seek_link_yesterday[$yesterday] = $seek;
}
}
}
if ( $today == 2 ) {
$url = "http://www.joins.com/general/$today_date_1/
$seek_link_today[$today]4110011501152.html";
} else {
if ( $today == 1 ) {
$url = "http://www.joins.com/general/$today_date_1/
$seek_link_today[$today]4110011501152.html";
} else {
if ( $yesterday == 2 ) {
$url = "http://www.joins.com/general/
$yesterday_date_1/$seek_link_yesterday[$yesterday]4110011501152.html";
} else {
if ( $yesterday == 1 ) {
$url = "http://www.joins.com/general/
$yesterday_date_1/$seek_link_yesterday[$yesterday]4110011501152.html";
}
}
}
}
$data = join("", file($url));
$temp = split("href|src|background",$data);
$size = sizeof($temp);
for( $i=1; $i < $size; $i++ ) {
$seek = strstr($temp[$i],"component/htmlphoto_mmdata");
if ( strlen($seek) != 0 ) {
$seek = substr($seek,0,strpos($seek,".GIF"));
$seek = "http://www.joins.com/$seek.GIF";
$seek_3 = "<p>:: 중앙일보 (김상택) ::</p><pre><img
src='$seek'</src></pre>";
}
}
///////////////////////////////// 경향신문은 의외로 간단하다^^
$url = "http://www.khan.co.kr/";
$data = join("", file($url));
$temp = split("href|src|background",$data);
$size = sizeof($temp);
for( $i=1; $i < $size; $i++ ) {
$seek = strstr($temp
[$i],"http://www.khan.co.kr/mx/cartoon/img_kym");
if ( strlen($seek) != 0 ) {
$seek = substr($seek,0,strpos($seek,".gif"));
$seek_4 = "<p>:: 경향신문 (김용민) ::</p><pre><img
src='$seek'</src></pre>";
}
}
////////////////////////////////////////// 문화일보는 더 간단하다
$url = "http://www.munhwa.co.kr/cartoon/cartoon.html";
$data = join("", file($url));
$seek = strstr($data,"man/");
$seek = substr($seek,0,strpos($seek,".jpg"));
if ( strlen($seek) != 0 ) {
$seek = "http://www.munhwa.co.kr/cartoon/$seek.jpg";
$seek_5 = "<p>:: 문화일보 (이재용) ::</p><pre><img
src='$seek'</src></pre>";
}
////////////////////////////////////// 노동일보도 간단하군...
$url = "http://www.laborw.com/admin/board/cartoon.html?
tablename=cartoon";
$data = join("", file($url));
$seek = strstr($data,"data/cartoon");
$seek = substr($seek,0,strpos($seek,".gif"));
if ( strlen($seek) != 0 ) {
$seek = "http://www.laborw.com/admin/board/$seek.gif";
$seek_6 = "<p>:: 노동일보 (강동헌) ::</p><pre><img
src='$seek'</src></pre>";
}
////////////////////////////////////// 동아일보
$url = "http://www.donga.com/fbin/cartoon?n=nadaero";
$data = join("", file($url));
$seek = strstr($data,"http://www.donga.com/docs/cartoon/nadaero/");
$seek = substr($seek,0,strpos($seek,".gif"));
if ( strlen($seek) != 0 ) {
$seek = "$seek.gif";
$seek_7 = "<p>:: 동아일보 나대로 선생 (이홍우) ::</p><pre><img
src='$seek'</src></pre>";
}
////////////////////////////////////// 한국일보
$url = "http://www2.hankooki.com/entertain/cartoon/10.htm";
$data = join("", file($url));
$seek = strstr($data,"http://www2.hankooki.com/entertain/cartoon/img");
$seek = substr($seek,0,strpos($seek,".jpg"));
if ( strlen($seek) != 0 ) {
$seek = "$seek.jpg";
$seek_8 = "<p>:: 한국일보 한국만평 ::</p><pre><img
src='$seek'</src></pre>";
}
////////////////////////////////////// 대한매일
$url = "http://www.kdaily.com/cartoon/manpyung/$today_date_2/
$today_date.gif";
$data = @fopen($url,"r");
if ( strlen($data) != 0 ) {
$seek_9 = "<p>:: 대한매일 (백무현) ::</p><pre><img
src='$url'</src></pre>";
fclose($data);
} else {
$url = "http://www.kdaily.com/cartoon/manpyung/
$yesterday_date_2/$yesterday_date.gif";
$data = @fopen($url,"r");
if ( strlen($data) != 0 ) {
$seek_9 = "<p>:: 대한매일 (백무현) ::</p><pre><img
src='$url'</src></pre>";
fclose($data);
}
}
////////////////////////////////////// 국민일보
$url = "http://www.kukminilbo.co.kr/";
$data = join("", file($url));
$seek = strstr($data,"online_image");
$seek = substr($seek,0,strpos($seek,"/cartoon.jpg"));
if ( strlen($seek) !=0 ) {
$seek_10 = "<p>:: 국민일보 국민만평 ::</p><pre><img
src='http://www.kukminilbo.co.kr/$seek/cartoon.jpg'</src></pre>";
}
////////////////////////////////////// 경인일보
$url = "http://www.kyeongin.com/carton/manpan_view.asp";
$data = join("", file($url));
$seek = strstr($data,"http://www.kiib.co.kr/carton/");
$seek = substr($seek,0,strpos($seek,".jpg"));
if ( strlen($seek) != 0 ) {
$seek_11 = "<p>:: 경인일보 경인만평 ::</p><pre><img
src='$seek.jpg'</src></pre>";
}
////////////////////////////////////// 강원일보
$url = "http://www.kwnews.co.kr/page/cartoon.asp";
$data = join("", file($url));
$seek = strstr($data,"http://www.kwnews.co.kr/cartoon/");
$seek = substr($seek,0,strpos($seek,".gif"));
if ( strlen($seek) != 0 ) {
$seek_12 = "<p>:: 강원일보 강원만평 ::</p><pre><img
src='$seek.gif'</src></pre>";
}
////////////////////////////////////// 강원도민일보
$url = "http://www.kado.net/centermenu-01/cartoon.jsp?
seq_no=13&refer=131";
$data = join("", file($url));
$seek = strstr($data,"webzine_img/13/kd_comic_manhwa");
$seek = substr($seek,0,strpos($seek,".jpg"));
if ( strlen($seek) != 0 ) {
$seek_13 = "<p>:: 강원도민일보 ::</p><pre><img
src='http://www.kado.net/$seek.jpg'</src></pre>";
}
////////////////////////////////////// 중도일보
$url = "http://www.joongdo.com/sepcial/cartoon.html";
$data = join("", file($url));
$temp = split("href|src|SRC|background",$data);
$size = sizeof($temp);
for( $i=1; $i < $size; $i++ ) {
$seek = strstr($temp[$i],"admin/sepcial/file/");
if ( strlen($seek) != 0 ) {
$exact = str_replace(".jpg","",$seek);
if ( $seek != $exact ) {
$seek = substr($seek,0,strpos($seek,".jpg"));
$seek_14 = "<p>:: 중도일보 (전호연) ::</p><pre><img
src='http://www.joongdo.com/$seek.jpg'</src></pre>";
}
}
}
////////////////////////////////////// 광주일보
$seek_15 = "<p>:: 광주일보 광일만평 ::</p><pre><img
src='http://www.kwangju.co.kr/etcfolder/만평.jpg'</src></pre>";
////////////////////////////////////// 광주타임스
$url = "http://www.kjtimes.co.kr/picture.html?section=평";
$data = join("", file($url));
$seek = strstr($data,"upimages/sphoto");
$seek = substr($seek,0,strpos($seek,".jpg"));
if ( strlen($seek) != 0 ) {
$seek_16 = "<p>:: 광주타임스 (김복룡) ::</p><pre><img
src='http://www.kjtimes.co.kr/$seek.jpg'</src></pre>";
}
////////////////////////////////////// 전라일보
$url = "http://211.230.150.55/news/cartoon.php?code4=CR0100009";
$data = join("", file($url));
$seek = strstr($data,"news/cartoon/man");
$seek = substr($seek,0,strpos($seek,".jpg"));
if ( strlen($seek) != 0 ) {
$seek_17 = "<p>:: 전라일보 전일만평 ::</p><pre><img
src='http://211.230.150.55/$seek.jpg'</src></pre>";
}
////////////////////////////////////// 전남일보
$seek = "p911.jpg";
$url = "http://www.jnilbo.com/upimages/sphoto/$today_date$seek";
$data = @fopen($url,"r");
if ( strlen($data) != 0 ) {
$seek_18 = "<p>:: 전남일보 전일만평 ::</p><pre><img
src='$url'</src></pre>";
fclose($data);
} else {
$url = "http://www.jnilbo.com/upimages/sphoto/
$yesterday_date$seek";
$data = @fopen($url,"r");
if ( strlen($data) != 0 ) {
$seek_18 = "<p>:: 전남일보 전일만평 ::</p><pre><img
src='$url'</src></pre>";
fclose($data);
}
}
////////////////////////////////////// 부산일보
$url = "http://news.busanilbo.com/n2000/cartton/cartton_12.html";
$data = join("", file($url));
$seek = strstr($data,"electron/pusan_news/CARTOON");
$seek = substr($seek,0,strpos($seek,".jpg"));
if ( strlen($seek) != 0 ) {
$seek = "http://news.busanilbo.com/$seek.jpg";
$seek_19 = "<p>:: 부산일보 부일만평 ::</p><pre><img
src='$seek'</src></pre>";
}
////////////////////////////////////// 대구매일신문
$url = "http://www.imaeil.com/cgi-bin/news/palgong_n";
$data = join("", file($url));
$seek = strstr($data,"news/man");
$seek = substr($seek,0,strpos($seek,".gif"));
if ( strlen($seek) != 0 ) {
$seek_20 = "<p>:: 대구매일신문 ::</p><pre><img
src='http://www.imaeil.com/$seek.gif'</src></pre>";
}
////////////////////////////////////// 경북일보
$seek_21 = "<p>:: 경북일보 경북만평 ::</p><pre><img
src='http://www.kyongbuk.co.kr/admintools/upload/cartoon/6_22.gif'</src
></pre>";
//////////////////////////////// 경남도민일보는 어쩔 수 없다 기냥 이렇
게 해야지 뭐
$seek_22 = "<p>:: 경남도민일보 ::</p><pre><img
src='http://dominilbo.co.kr/cartoon/m$today_date.jpg'</src></pre>";
////////////////////////////////////// 국제신문
$url = "http://www.kookje.co.kr/cartoon/cartoon_01.cfm";
$data = join("", file($url));
$seek = strstr($data,"data_images");
$seek = substr($seek,0,strpos($seek,".jpg"));
if ( strlen($seek) !=0 ) {
$seek_23 = "<p>:: 국제신문 (안기태) ::</p><pre><img
src='http://www.kookje.co.kr/cartoon/$seek.jpg'</src></pre>";
}
////////////////////////////////////// 제주일보
$url = "http://www.jejunews.com/funny/cartoon/cartoon_ex.php";
$data = join("", file($url));
$seek = strstr($data,"input_admin/funny/cartoon/manh_files");
$seek = substr($seek,0,strpos($seek,".jpg"));
if ( strlen($seek) != 0 ) {
$seek_24 = "<p>:: 제주일보 ::</p><pre><img
src='http://www.jejunews.com/$seek.jpg'</src></pre>";
}
////////////////////////////////////////// 긁어오는 시간 재기
$end = time();
$parse_time = $end - $start;
$content = "$seek_1$seek_2$seek_3$seek_4$seek_5$seek_6$seek_7$seek_8
$seek_9$seek_10$seek_11$seek_12$seek_13$seek_14$seek_15$seek_16$seek_17
$seek_18$seek_19$seek_20$seek_21$seek_22$seek_23$seek_24";
$fp = fopen("manpyoung.txt","w");
fwrite($fp,$content);
fclose($fp);
$url = "http://lp1001.snu.ac.kr/~parkmc2/manpyoung.txt";
$data = join("", file($url));
echo "$data";
echo "<pre>Parsing time = $parse_time sec :: 너무 오래 걸리나^^ 그러니
까 파일로 저장해 놓지...</pre>";
?>