'자작소스/PHP'에 해당되는 글 50건

  1. 2007.06.29 문자열 마킹 함수 - hideWord v1.0
  2. 2007.06.29 [갈쿠리패턴] phpschool tip&tech
  3. 2007.06.29 [갈쿠리패턴] 네이버 관련 키워드
  4. 2007.06.29 [갈쿠리패턴] cjmall
  5. 2007.06.29 [갈쿠리패턴] 지마켓
  6. 2007.06.29 [갈쿠리패턴] 옥션
  7. 2007.06.29 [갈쿠리패턴] 디엔샵
  8. 2007.06.29 [프로그램] 갈쿠리 v1.0.2
  9. 2007.06.29 [프로그램] 갈쿠리 v1.0.1
  10. 2007.06.29 [프로그램] 갈쿠리 v1.0
2007. 6. 29. 15:12

문자열 마킹 함수 - hideWord v1.0


<?php
function hideWord($str,$extent=null,$color="",$pos=0) {
    $str_len = strlen($str);
    $str_key = array();
    $seq = 0;
    for($i=0;$i<$str_len;$i++) {
        if(ord($str[$i]) > 128) {
            $seq++;
            if($seq%2==0)
                $str_key[]=$i+1;
        } else {
            $str_key[]=$i+1;
        }
    }
    $array_cnt = count($str_key);

    if($extent === null)
        $extent = intval($array_cnt/2);
    elseif($extent && $extent > $array_cnt)
        return $str;

    if($extent && $pos==0)
        $rtn = substr($str,0,$str_key[$extent-1]);
    elseif($extent && $pos==1)
        $rtn = substr($str,$str_key[$array_cnt - $extent-1],$str_len);

    for($i=$extent;$i<$array_cnt;$i++) {
        $ertn .= "X";
    }

    if($color)
        $ertn = "<font color='".$color."'>".$ertn."</font>";

    if($pos)
        return $ertn.$rtn;
    else
        return $rtn.$ertn;
} 
?>
hideWord(문자열,보여줄길이,마킹색상,마킹위치);

보여줄길이 null -> 문자열 절반만 마킹
보여줄길이 0 -> 전체 문자열 마킹

마킹위치 -> 0 왼쪽 글자보여줌
마킹위치 -> 1 오른쪽 글자만 보여줌

echo hideWord('가1나다라마마1212ㄴ안아',3,'red',0);
-> 가1나XXXXXXXXXXX

echo hideWord('가1나다라마마1212ㄴ안아',3,'red',1);
-> XXXXXXXXXXXㄴ안아
2007. 6. 29. 15:02

[갈쿠리패턴] phpschool tip&tech


<?php
function voidPrint(&$val) {
 print_r($val);
}

$buf = new GalKuRi;
$buf->voidSetPage('page','voidPrint',1);

$buf->voidSetSkipOffset('_default_','<!-- 목록 -->');


$buf->voidSetPattern('num','<td id="bb_list">','<');
$buf->voidSetPattern('kind','<span class=small>','<');
$buf->voidSetPattern('view_url',"<a href='..","'");
$buf->voidSetPattern('title',"<span style=''>","<");
$buf->voidSetPattern('name','title="','"');
$buf->voidSetPattern('regtime','title="','"');
$buf->voidSetPattern('regdate','>','<');
$buf->voidSetPattern('hit','<td id="bb_list">','<');


$buf->voidParsePage('http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&page=1');
?>

2007. 6. 29. 15:02

[갈쿠리패턴] 네이버 관련 키워드


<?php
$buf = new GalKuRi;
$buf->voidSetSkipOffset('_default_','<div class="SuggestWord">');
$buf->voidSetPattern('keyword',')));">','<');
$buf->voidSetSkipOffset('keyword','rsk.list1');
$buf ->voidParsePage('http://search.naver.com/search.naver?where=nexearch& query='.urlencode('아디다스').'&frm=t1&sm=top_hty');

print_r($buf->parse_value);
?>

2007. 6. 29. 15:01

[갈쿠리패턴] cjmall



<?php
function voidPrint(&$val) {
 print_r($val);
}

$buf = new GalKuRi;
$buf->voidSetPage('currpage','voidPrint',1);

$buf->voidSetSkipOffset('_default_','<!--리스트 시작-->');

$buf->voidSetPattern('image_url',"')\"><img src=\"http://image.cjmall.com/item_images/",'"');
$buf->voidSetPattern('content_url',"view_detail('","'");
$buf->voidSetPattern('goods_name','>','</a>');
$buf->voidSetPattern('price',"<span class='price'>",'원',',');

$buf->voidParsePage('http://www.cjmall.com/prd/list_cate2.jsp?ctg_id=126689&rowNum=');
?>

2007. 6. 29. 15:01

[갈쿠리패턴] 지마켓


<?php
function voidPrint(&$val) {
 print_r($val);
}

$buf = new GalKuRi;
$buf->voidSetPage('page','voidPrint',1);

$buf->voidSetSkipOffset('_default_','<input type="checkbox" name="goodscode"');

$buf->voidSetPattern('goods_name','<input type="hidden" name="gd_nm" value="','"');
$buf->voidSetPattern('content_url','<a href="','"');
$buf->voidSetPattern('image_url','<img src="','"');
$buf->voidSetPattern('price',"<font color=\"4A789E\"><font color='4A789E'>",'<',',');

$buf->voidParsePage('http://www.gmarket.co.kr/challenge/neo_category/html_small_category/small_category_300004032.asp?gdsc_cd=300004032&link_type=LIST');
?>

2007. 6. 29. 15:00

[갈쿠리패턴] 옥션


<?php
function voidPrint(&$val) {
 print_r($val);
}

$buf = new GalKuRi;
$buf->voidSetPage('page','voidPrint',1);

$buf->voidSetSkipOffset('_default_','<table class="listView" border="0" cellpadding="0" cellspacing="0" align="NotSet" style="width: 900px" >');

$buf->voidSetPattern('image',"<img src='","'",'');
$buf->voidSetPattern('content',"<a target=\"_top\" href='","'",'');
$buf->voidSetPattern('name','class="itemName">','</a>','');
$buf->voidSetPattern('price','<div style="FONT-WEIGHT: bold; COLOR: #ff8004">','</div>',',');

$buf->voidParsePage('http://listings.auction.co.kr/category/list.aspx?category=01180000&frm=home');
?>

2007. 6. 29. 15:00

[갈쿠리패턴] 디엔샵


<?php
function voidPrint(&$val) {
 print_r($val);
}

$buf = new GalKuRi;
$buf->voidSetPage('DTYPE=IMAGE&pageNo=','voidPrint',1);

$buf->voidSetSkipOffset('_default_','<form name="prodlist"');

$buf->voidSetCookie('ACODE','1ltjzE.wkt10');
$buf->voidSetCookie('tcateid','D42414');
$buf->voidSetCookie('pmmcBGIBLE8BRMUSEGM2B78CVG78KJ4','0');
$buf->voidSetCookie('pmmczGIBLE8BRMUSEGM2B78CVG78KJ4','1');

$buf->voidSetPattern('image_url','<img src="http://shopimage.hanmail.net/m_productimages/','"');
$buf->voidSetPattern('content_url','<a href="','"');
$buf->voidSetPattern('goods_name','>','</a>');
$buf->voidSetPattern('price','<strong class="price">','원',',');

$buf->voidParsePage('http://dnshop.daum.net/front/category/DetailCategory?CID=D42414');
?>

2007. 6. 29. 14:59

[프로그램] 갈쿠리 v1.0.2



멤버변수 초기화 메소드 voidReset() 추가
2007. 6. 29. 14:58

[프로그램] 갈쿠리 v1.0.1

변경된 부분


패턴이 한개만 등록되어 있을때 루프를 돌면서 문자열이 없을경우 루프를 중지할때


해당 결과 배열을 지워버리고 다음페이지를 처리하는 버그 수정


ex) 패턴 img,src,title 가 있을경우


img -> aaa

src -> bbb


값이 있으나 title 값이 없을경우

부정확한 값이므로 해당 결과배열 값을 지우고 리턴했으나


패턴이 한개만 등록되어 있을경우

결과적으로 마지막 값을 지워버리고 리턴하게 되있던 점을


패턴 배열(필드수)의 수와 결과배열의 필드수를 비교하여

다를경우 삭제하도록 수정

2007. 6. 29. 14:56

[프로그램] 갈쿠리 v1.0



<?php
간략 설명

$buf = new GalKuRi;  //객체생성

$buf->voidSetCookie(쿠키명,쿠키값); //쿠키설정

$buf->voidSetReferer(레퍼러); //레퍼러설정

$buf->voidSetPage(페이지변수명,외부함수,페이지번호); //페이지 처리 설정 외부함수는 한페이지후 결과를 처리하기 위해 설정

$buf->voidSetSleep(초); //한페이지 처리수 정지시간

$buf->voidSetPattern(필드명,시작문자,끝문자,[지울문자]); //파싱할 패턴 설정 시작문자와 끝문자 사이의 문자열을 배열로 저장

$buf->voidSetSkipOffset(필드명,찾을문자); //파싱후 패턴에 넣은 문자와 동일한 문자가 있어서 방해될경우 그문자까지 오프셋을 뛰어 넘음

$buf->voidParsePage(주소,[메소드],[포트]); //파싱시작

#

# 파싱된 데이타를 처리하는 방법

#

$buf->parse_value 배열을 처리하면 됨

#

# voidSetPage('page','func',1) 에서 외부 함수를 설정했을경우

# 한페이지 처리시는 괜찬으나 페이지가 많으면 배열이 많이 늘어나니

# 페이지가 많을 경우에는 외부 함수 사용을 추천

#

function func(&$val) {

  $val 결과배열 처리

}

-----------------------------------------------------------------------------

#

# 참고

# 단순히 전체페이지 내용을 원할경우(voidSetPattern 불필요)

#

$buf = new GalKuRi;

$buf->voidSetCookie(쿠키명,쿠키값);

$buf->voidSetReferer(레퍼러);

$buf->voidGetAllContents(주소,[메소드],[포트]);

echo $buf->response_header; //헤더값

echo $buf->contents; //전체내용
?>