서버구축,나스구축,서버관리,윈도우서버,리눅스서버,서버관리

Posted
Filed under 프로그래밍/Html
img{-ms-interpolation-mode:bicubic;}
 
익스플로러에서 이미지 사이즈 리사이징시, 번짐현상을 해결하는 방법
 
css가 상속되어 번짐현상이 일어날 경우,
<img src=""  style="-ms-interpolation-mode: nearest-neighbor;">
2015/04/15 13:02 2015/04/15 13:02
Posted
Filed under 기타/생활 정보
* 운동시간은 1시간 30분 기준

◆1단계(1~30일)
①운동법: 유산소 운동 5분 → 스트레칭 10~20분 → 웨이트 트레이닝 30분 → 유산소 운동 30분 → 스트레칭 10분
②식이요법: 갑자기 식단을 바꾸는 것보다 간식과 술을 끊고, 저녁 식사량을 조금 줄이는 것부터 시작한다. 채소류, 해조류, 버섯류 등 칼로리 밀도가 낮은 음식을 많이 먹는다. 주변에 운동시작을 선언하고, 가급적 저녁약속이나 회식자리는 만들지 않는다.
③주의점: 근육이 발달되지 않은 상태이므로 유산소운동과 스트레칭에 많은 투자를 한다. 유산소 운동을 하고나서 근력 운동을 하면 힘도 들고, 지방 분해도 안되므로 중간에 웨이트 트레이닝을 한다. 

◆2단계(31~60일)
①운동법: 유산소 운동 5분 → 스트레칭 10분 → 웨이트 트레이닝 1시간 → 유산소 운동 5분 → 스트레칭 10분
②식이요법: 운동 전후로 한 시간 반 이내에 식사하면 살이 찐다. 근육을 키우고자 하는 남성이라면 운동 후 30분 이내에 단백질 보충제나 단백질 음식을 먹어 고갈된 체내의 단백질을 보충해 줘야 하지만 여성이라면 굳이 그럴 필요 없다.
③주의점: 근육을 키우는 시기다. 근력 운동을 할 때 좀 더 무겁게 들되, 드는 횟수는 8~10회씩 5세트로 조금 줄인다. 중량을 늘리면 근육이 파열돼 단백질이 그 사이를 메워주므로 근육이 커진다. 따라서 그만큼 단백질을 많이 보충해 줘야 한다. 

◆3단계(61~100일)
①운동법: 유산소 운동 5분 → 스트레칭 10분 → 웨이트 트레이닝 1시간 → 유산소 운동 20~30분
②식이요법: 아침, 점심, 저녁 식사량을 절반으로 줄인다. 대신 아침과 점심, 점심과 저녁 사이에 닭 가슴살 같은 단백질 위주의 음식을 먹는다. 이것이 힘들면 끼니 만이라도 고단백 식사를 한다.
③주의점: ‘몸짱’을 만들려면 낮은 중량으로 횟수를 더 많이(20회 5세트)해서 오밀조밀하게 근육을 ‘조각’해야 한다. 근력 운동 뒤 유산소 운동을 충분히 하면 밀도 높은 단단한 근육을 만들 수 있다.
2015/04/15 12:21 2015/04/15 12:21
Posted
Filed under 프로그래밍/Html

입력 form 안에 있는 값들을 submit 시 일괄 encoding 을 변경하는 기능

<form name="frm" method="post" accept-charset="euc-kr" onsubmit="document.charset='euc=kr';">
<input type="text" name="itpName" id="itpName">
<input type="submit" class="search" name="search" value="search">
</form>

 

페이지 인코딩이 utf-8 인 경우.. euc-kr 로 변경 가능

2015/04/15 12:20 2015/04/15 12:20
Posted
Filed under 프로그래밍/PHP
euc-kr 개발 환경에서 jQuery 로 load 된 값을 받는 경우..

jQuery 를 사용하여 결과값을 POST 로 받게 되는 경우.. euc-kr 이 아닌 UTF-8 로 결과값을 받게 되는데.. 

결과값을 통해 특정 div 내에 load 항목으로 내용(결과값) 을 갱신하는 경우..

해당 부분의 인코딩이 UTF-8 로 출력되어 인코딩이 깨진 경우가 발생

 

헤더 정보로 페이지의 인코딩 변경할 수 있다!

<?
header("Content-type: application/xml; charset=euc-kr");

?>

 

2015/04/15 12:19 2015/04/15 12:19
Posted
Filed under 프로그래밍/Html

윈도우7 IE9 환경에서 개발했던 사이트의 UI 가  다른 PC 의 IE 환경에서는 깨지는 현상 발생!

에러가 발견되는 IE 의 버전에는 크게 문제가 없는 상황, IE 의 '호환성보기' 가 문제..

<meta http-equiv="X-UA-Compatible" content="IE=5">

<meta http-equiv="X-UA-Compatible" content="IE=6">

<meta http-equiv="X-UA-Compatible" content="IE=7">

<meta http-equiv="X-UA-Compatible" content="IE=8">

<meta http-equiv="X-UA-Compatible" content="IE=9">

 


가장 최신의 버전 모드는
<meta http-equiv="X-UA-Compatible" content="IE=Edge">

 

 

content 속성에 지정할 수 있는 값

* IE=5 (관용모드)
- 지정된 DOCTYPE 에 상관없이 IE5 랜더링 방식이 사용됨.


* IE=7 (IE7 표준모드)
- 지정된 DOCTYPE 에 상관없이 IE7 표준 모드 랜더링 방식이 사용됨.


* IE=EmulateIE7 (IE7 메뉼레이션 모드)
- 지정된 DOCTYPE 에 따라 IE7 표준 모드나 관용 모드의 랜더링 방식이 사용됨 (사실상 IE7 을 흉내냄)


* IE=8 (IE8 표준모드)
- 지정된 DOCTYPE 에 상관없이 IE8 표준모드 랜더링 방식이 사용됨.


* IE=EmulateIE8 (IE8 애뮬레이션 모드)
- 지정된 DOCTYPE 에 따라 IE8 표준모드나 관용모드의 랜더링 방식이 사용됨.


* IE=edge(최신모드)
- 지정된 DOCTYPE 에 상관없이 IE8 이상 버전에서 항상 최신 표준 모드가 사용됨.

 

 

 


새로 개발하는 사이트라면 표준 모드를 사용해야하니깐 IE=8 모드를 지정하는것이 바람직하나, 마이크로소프트는 실험적인 프로젝트가 아닌 이상 IE=edge 모드를 지정할 것을 권장한다. 구식 콘텐츠를 위해 특정 랜더링 엔진을 사용하려면 위의 contents 속성의 다양한 값 중 하나를 지정하면 된다.

2015/04/15 12:19 2015/04/15 12:19
Posted
Filed under 프로그래밍/PHP

특정 문자열을 치환해야하는데..

str_replace() ..만으로 문자열을 치환하기 곤란한 상황이 있다. 예를 들어 대상문자에 치환문자가 중복등록되어 있다는 경우, 치환문자중의 마지막 문자열만 치환하길 원하는 경우엔 다음과 같이 하면됨.

<?
$str = '김은표...박지현...';
$find = '...';
$replace = '!';
$result = preg_replace(strrev("/$find/"),strrev($replace),strrev($str),1);
echo strrev($result);
?>

결과 :

김은표...박지현!

 

preg_replace : Perform a regular expression search and replace / 문자열에서 패턴을 추출하거나 바꿀수 있음

http://php.net/manual/en/function.preg-replace.php

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

 

<?
$str = "abcdef123456";
echo preg_replace('/[a-z]/', '*', $text);
?>

결과 :

******123456

 

+ 관련 함수

- str_replace : http://php.net/manual/kr/function.str-replace.php

- strrev : http://php.net/manual/en/function.strrev.php

2015/04/15 12:18 2015/04/15 12:18
Posted
Filed under 프로그래밍/PHP
^ (caret) : 라인의 처음이나 문자열의 처음을 표시한다.
^aaa : 문자열의 처음에 aaa 를 포함하면 참, 그렇지 않으면 거짓

$ (dollar) : 라인의 끝이나 문자열의 끝을 표시한다.
aaa$ : 문자열의 끝에 aaa 를 포함하면 참, 그렇지 않으면 거짓

. (period) : 임의의 한 문자를 표시
^a.c : 문자열의 처음에 abc, adc, aXc 등을 포함하면 참, aa 는 거짓
a..b$ : 문자열의 끝에 aaab, aZXb, aCxb 등을 포함하면 참

[] (bracket) : 문자의 집합이나 범위를 나타냄, 두 문자 사이의 "-" 는 범위를 나타냄
[] 내에서 "^" 이 선행되면 not 를 나타냄
이외에도 "문자클래스" 를 포함하는 [:문자클래스:] 의 형태가 있다. (문자클래스에서는 alpha, blank, cntrl, digit, graph, lower, print, space, upper, xdigit 가 있다.)
 
{} (brace) : {} 내의 숫자는 직전의 선행문자가 나타나는 횟수 또는 범위를 나타낸다.
a{3} : 'a' 의 3번 반복인 aaa 만 해당됨.
a{3,} : 'a' 가 3번 이상 반복인 aaa, aaaa, aaaaa, ... 등을 나타냄
a{3,5} : 'a'가 3번이상 5번 이하 반복인 aaa,aaaa,aaaaa 만 해당됨
ab{2,3} : abb 와 abbb만 해당됨
[0-9]{2} : 두 자리 숫자
doc[7-9]{2} : doc77, doc87, doc97 등이 해당
[^Zz]{5} : Z와 z를 포함하지 않는 5개의 문자열, abcde, ttttt 등이 해당
.{3,4}er : 'er' 앞에 세개 또는 네개의 문자를 포함하는 문자열이므로 Peter, mother 등이 해당

* (asterisk) : '*' 직전의 선행문자가 0번 또는 여러번 나타나는 문자열
ab*c : 'b'를 0번 또는 여러번 포함하므로 ac, ackdddd, abc, abbc, abbbbbbbc 등
* : 선행문자가 없는 경우이므로 임의의 문자열 및 공백 문자열은 안됨
.* : 선행문자가 '.' 이므로 하나 이상의 문자를 포함하는 문자열, 공백 문자열은 안됨
ab* : 'b'를 0번 또는 여러번 포함하므로 a, accc, abb, abbbbbbb 등
a* : 'a'를 0번 또는 여러번 포함하므로 k, kdd, sdfrrt, a, aaaa, abb, 공백문자열 등
doc[7-9]* : doc7, doc777, doc778989, doc 등이 해당
[A-Z].* : 대문자로만 이루어진 문자열
like.* : 직전의 선행문자가 '.'이므로 like에 0 또는 하나 이상의 문자가 추가된 문자열이 됨, like, likely, liker, likelihood 등

? : '?' 직전의 선행문자가 0번 또는 1번 나타나는 문자열
ab?c : 'b'를 0번 또는 1번 포함하므로 abc, abcd 만 해당됨

() (parenthesis) : ()는 정규식내에서 패턴을 그룹화 할 때 사용

| (bar) : or를 나타냄
a|b|c : a, b, c 중 하나, 즉 [a-c]와 동일함
yes|Yes : yes나 Yes 중 하나, [yY]es와 동일함
korea|japan|chinese : korea, japan, chinese 중 하나

\ (backslash) : 위에서 사용된 특수 문자들을 정규식내에서 문자를 취급하고 싶을 때 '\'를 선행시켜서 사용
filename\.ext ("filename.ext"를 나타냄)
[\?\[\\\]] : '?', '[', '\', ']' 중 하나
2015/04/15 12:16 2015/04/15 12:16
Posted
Filed under 프로그래밍/PHP

HTMLPARSING.php 클래스 와 네이버 검색 api 를 이용해서

네이버 검색 영역 파싱을 해 보았다.

 

내가 처음 회사 입사했을때 나에게 주어진 업무는 다른 업체 매출 리포트를

우리 회사 매출리포트에서 볼 수 있도록 추가 해달라는 사항이였다

(매번 여기 저기 페이지 로그인후 매출 보기가 불편 해서)

 

이렇듯 웹프로그래머한테 파싱이란 기술은 유용하다 라고 해야하나

거의 필수 조건인거 같다.

 

이래저래 파싱기술을 찾아 웹서핑 하고 다녀 얻은 기술들중 1가지 방법이고

xml 형태 파싱에 최적화 되어 있는 파싱 클래스 이지 않을까 생각한다

 

 

우선 파싱을 위해 필요한 클래스를 다운 받는다

 

다운로드 : HTMLPARSING.php

(내가 다운로드 걸었는거 기본적인 클래스 조금 수정 한 클래스)

(원본 필요하면 다른 사이트 가셔서 받으셔야 합니다)

 

그후 파싱해서 뿌려 줄 페이지 또는 값이 저장될 페이지를 생성

 

나는 index.php 로

 

참고 : http://developer.naver.com/wiki/pages/Blog

여기가서 네이버 오픈 API 설명서를 숙지하고 키를 발급해서 사용 해야한다

 

 

짠~

끝났습니다  오픈 클래스와 오픈 API 사용하니까 코드 몇줄에 뚝딱 해버립니다.

 

결과는

사용자 삽입 이미지

 

나머지는 정규식 또는 분할 함수 이용해서 깔끔하게 다듬어서

DB에 저장하든지 출력하든지 하면 됩니다. ㅎ

그건 당연 개발자의 몫입니다. ㅎ

 

 

ps. 해당 클래스는 네이버 검색 api 말고도

여러가지 사이트 파싱에도 유용하게 사용되고 편리합니다.

자기자신에 맞게 클래스를 조금씩 커스텀해서 사용하면 됩니다.

 

다음에 포스팅하게되면 이번은 모든 방법이 다 들어 있는

스누피 파싱 클래스에 대해서 포스팅 할 예정입니다.

2015/04/15 12:08 2015/04/15 12:08
Posted
Filed under 프로그래밍/PHP
php에서 정규식을 활용하여 문자열안에 있는 태그 제거 및 추출 방법에 대해서 알아보겠습니다.

​정규식을 잘 활용하면 소스가 간결해지며 그만큼 좋은 효과를 가져올수 있다고 하는데요 이걸 또 평소에 쓰는 버릇을 해야하는데

자주 쓰이진 않다보니 금방 까먹게 되네요.

TEXTAREA 제거
$content = preg_replace("!<TEXTAREA(.*?)>!is","[TEXTAREA]",$content);
$content = preg_replace("!</TEXTAREA(.*?)>!is","[/TEXTAREA]",$content);

 


script 제거
$str=preg_replace("!<script(.*?)<\/script>!is","",$str);

 

 

iframe 제거
$str=preg_replace("!<iframe(.*?)<\/iframe>!is","",$str);

 

meta 제거
$str=preg_replace("!<meta(.*?)>!is","",$str);

 

style 태그 제거
$str=preg_replace("!<style(.*?)<\/style>!is","",$str);

 

&nbsp;를 공백으로 변환
$str=str_replace("&nbsp;"," ",$str);

 

연속된 공백 1개로
$str=preg_replace("/\s{2,}/"," ",$str);

 

 

태그안에 style= 속성 제거
$str=preg_replace("/ zzstyle=([^\"\']+) /"," ",$str); // style=border:0... 따옴표가 없을때
$str=preg_replace("/ style=(\"|\')?([^\"\']+)(\"|\')?/","",$str); // style="border:0..." 따옴표 있을때

 

태그안의 width=, height= 속성 제거
$str=preg_replace("/ width=(\"|\')?\d+(\"|\')?/","",$str);
$str=preg_replace("/ height=(\"|\')?\d+(\"|\')?/","",$str);

 

 

img 태그 추출 src 추출
preg_match("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i",$str,$RESULT);
preg_match_all("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i",$str,$RESULT);

 

 

호스트 추출
<?
preg_match("/^(http:\/\/)?([^\/]+)/i","http://www.naver.com/index.php",$matches);
$host = $matches[2];
echo$matches[0]."<br>";
echo$matches[1]."<br>";
echo$matches[2]."<br>";
?>

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

위에 나열된 값을 가지고 정규식을 테스트 해보자

 

2015/04/15 12:06 2015/04/15 12:06
Posted
Filed under 프로그래밍/PHP
^ (caret) : 라인의 처음이나 문자열의 처음을 표시한다.
^aaa : 문자열의 처음에 aaa 를 포함하면 참, 그렇지 않으면 거짓

$ (dollar) : 라인의 끝이나 문자열의 끝을 표시한다.
aaa$ : 문자열의 끝에 aaa 를 포함하면 참, 그렇지 않으면 거짓

. (period) : 임의의 한 문자를 표시
^a.c : 문자열의 처음에 abc, adc, aXc 등을 포함하면 참, aa 는 거짓
a..b$ : 문자열의 끝에 aaab, aZXb, aCxb 등을 포함하면 참

[] (bracket) : 문자의 집합이나 범위를 나타냄, 두 문자 사이의 "-" 는 범위를 나타냄
[] 내에서 "^" 이 선행되면 not 를 나타냄
이외에도 "문자클래스" 를 포함하는 [:문자클래스:] 의 형태가 있다. (문자클래스에서는 alpha, blank, cntrl, digit, graph, lower, print, space, upper, xdigit 가 있다.)
 
{} (brace) : {} 내의 숫자는 직전의 선행문자가 나타나는 횟수 또는 범위를 나타낸다.
a{3} : 'a' 의 3번 반복인 aaa 만 해당됨.
a{3,} : 'a' 가 3번 이상 반복인 aaa, aaaa, aaaaa, ... 등을 나타냄
a{3,5} : 'a'가 3번이상 5번 이하 반복인 aaa,aaaa,aaaaa 만 해당됨
ab{2,3} : abb 와 abbb만 해당됨
[0-9]{2} : 두 자리 숫자
doc[7-9]{2} : doc77, doc87, doc97 등이 해당
[^Zz]{5} : Z와 z를 포함하지 않는 5개의 문자열, abcde, ttttt 등이 해당
.{3,4}er : 'er' 앞에 세개 또는 네개의 문자를 포함하는 문자열이므로 Peter, mother 등이 해당

* (asterisk) : '*' 직전의 선행문자가 0번 또는 여러번 나타나는 문자열
ab*c : 'b'를 0번 또는 여러번 포함하므로 ac, ackdddd, abc, abbc, abbbbbbbc 등
* : 선행문자가 없는 경우이므로 임의의 문자열 및 공백 문자열은 안됨
.* : 선행문자가 '.' 이므로 하나 이상의 문자를 포함하는 문자열, 공백 문자열은 안됨
ab* : 'b'를 0번 또는 여러번 포함하므로 a, accc, abb, abbbbbbb 등
a* : 'a'를 0번 또는 여러번 포함하므로 k, kdd, sdfrrt, a, aaaa, abb, 공백문자열 등
doc[7-9]* : doc7, doc777, doc778989, doc 등이 해당
[A-Z].* : 대문자로만 이루어진 문자열
like.* : 직전의 선행문자가 '.'이므로 like에 0 또는 하나 이상의 문자가 추가된 문자열이 됨, like, likely, liker, likelihood 등

? : '?' 직전의 선행문자가 0번 또는 1번 나타나는 문자열
ab?c : 'b'를 0번 또는 1번 포함하므로 abc, abcd 만 해당됨

() (parenthesis) : ()는 정규식내에서 패턴을 그룹화 할 때 사용

| (bar) : or를 나타냄
a|b|c : a, b, c 중 하나, 즉 [a-c]와 동일함
yes|Yes : yes나 Yes 중 하나, [yY]es와 동일함
korea|japan|chinese : korea, japan, chinese 중 하나

\ (backslash) : 위에서 사용된 특수 문자들을 정규식내에서 문자를 취급하고 싶을 때 '\'를 선행시켜서 사용
filename\.ext ("filename.ext"를 나타냄)
[\?\[\\\]] : '?', '[', '\', ']' 중 하나
2015/04/15 12:06 2015/04/15 12:06