Search Results for '전체 분류'


2049 posts related to '전체 분류'

  1. 2018/08/03 생성함수 - 서브도메인 가져오기
  2. 2018/08/03 PhpStorm [PHP] 추천 개발툴
  3. 2018/08/03 파일질라 새로 설치시 기존 환경설정, 개인설정 이전 방법
  4. 2018/08/03 도메인 정보를 확인 할 때 www를 제외하기
  5. 2018/08/03 스마트폰 도청 아직도 해결되지 않고 있습니다. 1
  6. 2018/08/03 나노엔 우리가 걸어온 길
  7. 2018/08/03 스포츠서울 소비자만족도1위 브랜드 대상 나노엔 수상
  8. 2018/08/03 셀프나노코팅제 머리카락 굵기의 1/100nm(나노미터)의 구조
  9. 2018/08/03 웹 취약점 진단툴
  10. 2018/08/03 curl 이용하여 파싱하기
  11. 2018/08/03 한글 음소 나누기
  12. 2018/08/03 스택(stack)을 이용한 사칙연산(+ - * /) 계산기
  13. 2018/08/03 화이트 도메인, 실시간 스팸 차단 리스트(메일 보내기 허용)
  14. 2018/08/03 PHP 유용한 일반 함수 모음 (PHP)
  15. 2018/08/03 모바일일때만 보이고 안보이고
  16. 2018/08/03 PHP 문자열 자르기, substr()
  17. 2018/08/03 저작권 걱정 없는 무료 이미지 사이트
  18. 2018/08/03 SEO 검색엔진 상위리스트 올리기
  19. 2018/08/03 기획 진행시, 복잡한 생각을 정리해줄 수 있는 툴!!
  20. 2018/08/03 SEO 사이트맵 제작 프로그램
  21. 2018/08/03 filemtime — 파일 수정 시간 가져 오기
  22. 2018/08/03 정규식으로 유투브 주소에서 아이디 값만 추출
  23. 2018/08/03 PHP ucfirst - 문자열의 첫 번째 문자를 대문자로 만듭니다.
  24. 2018/08/03 도메인 변경 및 http 를 https 로 이동하는 방법
  25. 2018/08/03 네이버 클로버 tts
  26. 2018/08/03 jQuery 폼의 첫번째 입력가능한 필드에 FOCUS 주기
  27. 2018/08/03 리눅스에서 <?php 는 작동하는데 <? 로 시작하면 파일 깨질때
  28. 2018/08/03 PHP 배열 내장함수 - array_change_key_case
  29. 2018/07/30 우분투에 sendmail 설치 설정
  30. 2018/07/29 멀티 도메인 멀티 루트의 Letsencrypt 인증서 만들기
사용자 삽입 이미지


3dp chip을  이용을 하시면   아주 쉽게  CPU/메인보드/그래픽카드/멀티미디어/사운드/랜카드/기타기기에 대한  드라이버를  쉽게 다운로드 받아서 설치를 할 수가 있습니다.



2018/08/05 11:23 2018/08/05 11:23
사용자 삽입 이미지

StopUpdates10을  사용하면 언제든지 Windows 10 업데이트를 허용하거나 차단할 수 있습니다. 이 응용 프로그램은 우리에게 완벽하게 시간 초과되었습니다. 이전에 Windows Update를 차단하기 위해 유사한 응용 프로그램을 사용해 왔지만 VMware는 업데이트 속도를 늦추고 지연 시키며 악화 시켰습니다. Microsoft는 Windows Update의 작동 방식을 다시 변경했으며 업데이트를 방지하는 대부분의 응용 프로그램은 이제 고장났습니다. StopUpdates10을 입력하십시오. 이제 Windows 업데이트를 다시 차단하거나 허용 할 수 있습니다.
StopUpdates10의 특징
일반적으로이 앱의 효과를 테스트하기는 어려울 지 모르지만 Windows Update가 VMware를 부팅 한 지 5 분 이내에 계속 실행된다는 점은 독창적 인 위치에 있습니다. 업데이트가 중단되었다고 알려 드리겠습니다. 우리는 확신하기 위해 30 분을 기다렸다.
StopUpdates10은 설치가 필요하지만 사용하기 쉽습니다. 기본적으로 "Windows 업데이트가 차단되지 않았습니다"라는 빨간색 글자와 빨간색 버튼 인 "Stop Windows Updates!"가 표시됩니다. 차단되면 모든 항목이 반전되고 "Windows 업데이트가 차단되었습니다!"라는 텍스트가있는 녹색 글자로 표시됩니다. "Windows Update 복원"이라는 버튼이 있습니다. 또한 Greatis는 UnHackMe, BootReacer, Anti-WebMiner 및 Edge Reset Button과 같은 다른 프리웨어 프로그램에 대한 링크를 제공합니다.

2018/08/05 11:13 2018/08/05 11:13
사용자 삽입 이미지

Atomic Email Hunter is available as a free download from our software library. Advanced, fast email extraction within the Internet. Atomic Email Hunter – Harvest email addresses from websites. Collect quality contacts and personalize your mailing lists. Create highly targeted contact lists!
Automatic email extraction from any site on the Internet
Identification of the country of the address owner using email address domain and location of extraction
Extraction of contact addresses from your email account using the Mailbox plugin
Email address search on webpages that require a login and password

사용자 삽입 이미지

Features of Atomic Email Hunter
Email extraction from a specified website
• If you have already chosen a site and want to extract email addresses from it, enter its URL-address, and the program will collect all of the email addresses available on the site. You can also retrieve addresses from pages that require a login and password.
Search for email addresses using keywords
• The program searches for sites that match specified keywords, and extracts email addresses from these sites. This allows you to reach your target audience if you do not have a list of relevant sites to search for email addresses.
Search for emails on a website by keywords
• Enter the web address and a keyword by which to conduct a search. The program will find all pages of the website that have the keyword. Email addresses will be extracted from these pages. The search can be limited to specific countries.
Mailbox plugin
• The Mailbox plugin is used to search for email addresses in your email account. The program scans all messages in the mailbox and retrieves the addresses of those people whom you have corresponded with, as well as email addresses mentioned in text messages.
Craigslist plugin (New!)
• The Craigslist plugin is developed to extract email addresses from www.craigslist.org. The email address extraction process will run according to your chosen keyword. You can also select the categories that you are interested in searching.
Detection of country of origin (New!)
The program can guess what country an email address owner lives in, using the:
• domain (if, for example, a person has a mailbox ending in mail.ru, there is a high probability that he is from Russia)
• webpage from which the email address was extracted (for example, if the email address was found on a page ending in .dk, the owner is likely to be from Denmark)
LinkedIn plugin (New!)
• This plugin is developed to extract email addresses from the social network LinkedIn. All you need to obtain the necessary addressesis to select the keyword, region and category.
2018/08/04 18:55 2018/08/04 18:55
사용자 삽입 이미지


KMSAUTO NET 은 윈도우 10 및 오피스 2018  자동 인증 프로그램입니다.  이번에 1.70 으로 업데이트 되었습니다.

수정 : 통합 버전으로 파일 변경 되었습니다.

사용자 삽입 이미지


Top KMSAuto Features:
Very easy to use with user-friendly interface.
Easily use this tool for activation of Windows products.
Windows products activated for permanent.
Fully compatible with antivirus software.
Supports Windows 10 and Office 2018.
It offered as a free download.
Fast and easy activation, working within mere seconds.
Thoroughly clean, safe and free of malicious content.
To enhance the performance of your computer system.
It can solve your PC problems with activation.
Whats New in KMS 2018?
It has been updated Product Key v1.66 to v1.70.
New TAP driver to support Windows 10. A random IP address.
Re-compiled KMS Service and So antivirus will not detect as the threat.
Including utility MSActBackUp.
Added Keys for Windows 10 and Office 2018.
Fully Conversion from Office 2016-17 RETAIL to VL.
In the “About” tab you can find a link to a page with my programs.
Supports program for Windows 10 “Show or hide updates.”


사용자 삽입 이미지



2018/08/04 16:15 2018/08/04 16:15
윈도우에서 리눅스로 또는 그 반대로 파일을 복사해야 하는 경우가 있습니다. 저는 PC 에 리눅스 특정 폴더를 스크립트 하여 원하는 시간에 백업 하도록 설정 하였습니다. 

이럴경우 필요한 프로그램이 있습니다 PSCP 입니다 PSCP는 윈도우와 리눅스 간에 파일을 복사 할수 있습니다. 

먼저 PSCP.EXE 파일을 다운 받습니다. 

이후 pscp.exe 실행 파일을 system32 디렉토리로 복사합니다. 

일반적으로 C : \ Windows \ System32 경로에 있습니다. 이렇게 하는 이유는 어떤 경로에서도 pscp 명령어를 사용하기 위해서 입니다.

다음 명령어 형식을 사용하십시오.

cmd 스크립트 입니다.


pscp -pw password C:\Users\Admin\Desktop\test.txt  \
user@192.168.33.10:/home/youngsam 


pscp -i /path/to/key.ppk C:\Users\Admin\Desktop\test.txt \
user@192.168.33.10:/home/youngsam

위의 명령은 리눅스에서 윈도우 폴더로 복사하는 명령어 입니다.
2018/08/04 15:26 2018/08/04 15:26
가끔 배열을 사용하다보면 기존배열의 중간이나 특정 사이에 값을 제거해야 할 경우가 생깁니다.
그럴경우에는 아래의 함수를 이용해서 원하는 값을 제거 할 수 있습니다.

<?php
// 배열, 삭제할 값
function arr_del($list_arr, $del_num) {
$key = array_search($del_num, $list_arr); //배열에 키를 알아오고
array_splice($list_arr, $key, 1); // 배열에서 위에서 받아온 키를 삭제
return $list_arr;
}
$arr = array('AAA','BBB','CCC','DDD','EEE');
$result_arr = arr_del($arr, 'CCC'); // 해당 배열에서 CCC를 제거
print_r($result_arr);
?>

결과 

Array ( [0] => AAA [1] => BBB [2] => DDD [3] => EEE )
2018/08/03 19:31 2018/08/03 19:31
<?php
function get_sub_domain(){
preg_match("/(([a-z0-9\-]+\.)*)([a-z0-9\-]+)\.([a-z]{3,4}|[a-z]{2,3}\.[a-z]{2})(\:[0-9]+)?$/", $_SERVER['HTTP_HOST'], $matches);
$sub_domain = null;
if($matches[1]) {
$sub_domain = substr($matches[1], 0, -1);
}
return $sub_domain;
}
?>
2018/08/03 19:30 2018/08/03 19:30
http://www.jetbrains.com/

개발툴
시리얼 : http://idea.goxz.gq
시리얼 :​ http://idea.imsxm.com


사용자 삽입 이미지



여기서 개발한 파이썬 개발툴인 PyCharm  프로그램 도 적극 추천한다.


2018/08/03 19:28 2018/08/03 19:28
파일질라를 삭제하고 새로 설치 하게 될 경우 기존의 연결 된 FTP의 정보들을 백업해서
새로 설치한 파일질라에 그대로 가져와서 사용할 수 있습니다.
백업 방법은 아주 간단합니다. 아래와 같이 파일질라에서 파일->내보내기 메뉴를 이용해서 가능합니다.

1.
사용자 삽입 이미지

2. 
사용자 삽입 이미지

3. 
사용자 삽입 이미지

복원 방법도 마찬가지로 파일질라의 파일->가져오기 메뉴를 이용해서 백업한 설정 정보를 가져올 수 있습니다.


4. 
사용자 삽입 이미지
5.
사용자 삽입 이미지

위와 같이 기존 설정을 내보내기, 가져오기 기능을 사용하면
이전에 사용하던 FTP의 정보와 개인설정까지 모두 그대로 사용할 수 있습니다.
2018/08/03 19:21 2018/08/03 19:21
<?php
// 도메인 정보를 확인 할때 www를 제외하고 체크하자.
function get_server_name() {
    return preg_replace('/^(www\.)/',"",$_SERVER['SERVER_NAME']);
}
$current_server_name = get_server_name();
echo $current_server_name;
?>
2018/08/03 19:16 2018/08/03 19:16
2012년 스마트폰 위치 추적 관련하여 이런저런 일로 골치가 아팠던 기억이 난다. 아무리 친한 사람 부탁이라도  당사자가 신고하면 제공 해주는 사람도 함께 처벌을 받는다 ㅜㅜ;

얼마전 시골 친구가 연락이 왔다 남편 바람으로 핸드폰 도청을 하고 싶다고 .. 예전에 알아보던 프로그램을 검색 한 결과 아직도 유사하게 변형하여 판매를 하고 있다. 그 내용을 정리 하려 한다. 

참고로 불법적인 프로그램을 사용하지 않더라도 스마트폰 을 5분만 만지작 거리면 실시간 도청이 가능하다. 관련 내용은 생략 하겠다. 

아래 기능 사이트 캡쳐함 

사용자 삽입 이미지

어플 이름은 밝히지 않는다.

사용자 삽입 이미지

내용이다. 10년 전만 하더라도 이 회사는 불륜 관련 어플로 홍보를 하면서 돈벌이를 하고 있다 . 국내 다수 불법적인 신고로 인해 이후 불륜 관련해서는 내용이 안보인다.

자녀를 관찰 한다는 홍보문구 하지만 내용을 잘 읽어보면 통화관리,텍스트 메세지 추적, 이메일 확인, GPS  위치추적, 사진, 비디오 확인

이건 완전 트로이목마 수준이다.
2018/08/03 18:09 2018/08/03 18:09
1999년 대학을 다니던 지인들과 의기토합하여 창업을 하게 되었던게 한해 두해가 지나 지금은 머리가 조금씩 하얗게 변한 40대 나이가 되었습니다.

사용자 삽입 이미지

당시엔 모두 젊었고 열정과 패기가 있던 시기였던것으로 기억합니다
개발자 입장에서 좋은 제품을 만들기만 하면 잘 팔리겠지 라는 단순하고 순수한 생각으로 밤샘작업도 마다하지 않았고, 비싸게 팔리지 않더라도 시간을 투자해서 참 많은것들을 개발하기도 했습니다.
그러기를 2년
사업은 사업성과 영업성을 가지고 접근해야하는거지 열정과 노력, 그리고 좋은 제품만으로 절대로 성공할 수  없다는 것을 여러 번 느꼈던 시기였다고 생각합니다.

같이 시작했던 동료가 지금까지 모두 같이있지는 않지만 그들에게 부끄럽지 않은 회사가 되었으면 하는 바램입니다. 

개발자 입장에서 본다면 좋은 제품을 개발해야 하지만 회사 입장에서는 잘 팔릴수 있는 제품을 개발해야만 이후 좋은 제품을 개발할 수 있는 기회가 올 수 있다는 현실 
 
지난 19년 동안 나노 기반의 비지니스는 무척이나 다양한 방면으로 접해보았던것 같습니다.
 
나노엔은 (NANO N)
나노엔의 의미는 NANO + NEW 의 합친 말입니다.
다시말해 나노 기술에 새로운 기술을 의미합니다. 그 동안 많은 직원들과 동거동락을 해왔습니다. 그들이 없었다면 현재의 나노엔은 없었을 거라 생각합니다.


지난 19년간의 노력  축적된 기술 그리고 비즈니스의 경험으로 고객 한분 한분에게 최고의 제품으로 보답하도록 노력하겠습니다.


임선학 이사 올림


2018/08/03 14:39 2018/08/03 14:39
스포츠서울 소비자만족도1위 브랜드 대상 나노엔 수상
무독성 무기질 나노코팅제 개발, 국내 나노코팅기술 산업화 선도 나노엔

2018/08/03 14:33 2018/08/03 14:33
사용자 삽입 이미지


100nm의 나노코팅은 마찰계수를 최소한으로 줄이고 오염원의 밀착이나 고착현상을 원천적으로 밀어내는 작용을 합니다.
이에 따라 오염원으로부터 발생되는 박테리아 (최소100nm)의 증식이나 발생을 원천적으로 차단합니다.
 
나노엔은 최신 나노테크놀로지 입니다.
기존의 두꺼운 실리콘을 형성해 코팅시키는 전통적인 방식이 아닙니다.
나노엔은 유리의 미세굴곡을 따라 무기질 초박막 코팅층을 형성하는 최신 나노테크놀로지 입니다.
2018/08/03 14:29 2018/08/03 14:29
지원 OS : 윈도우 
개발환경 : QT(C++) 
사용제한 : 사용제한없음 
자료설명 : 
ahoonScanner 
- 패턴 및 시그니처 기반 웹 취약점 진단툴 
- SQL 인젝션, XSS, 다운로드, 정보노출 등등 
- 결과 화면 캡쳐, 보고서, 실시간 보기 기능 
보다 자세한 도움말 이용. 
다운로드는 아래 링크에서 받으면 됩니다. 
https://drive.google.com/file/d/0Bw865yAScbYfYXQzSUQ5NllwWU0/view 

주의) 타 사이트 이용시 법적 문제가 될 수 있으니 참고하시기 바랍니다.
2018/08/03 12:34 2018/08/03 12:34
php에서는 html을 파싱하기 위해서 simple_html_dom 플러그인을 많이 사용되고 있습니다.
그러나 simple_html_dom을 이용하여 파싱을 할수 없거나 자바스크립트로 인해 원하는 결과를 얻어 올수 없을때가 있습니다. 
이럴때 curl 을 이용한 파싱이 도움이 됩니다. 
$url = "http://www.example.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
echo $output;
2018/08/03 12:00 2018/08/03 12:00
var divideHangulPhoneme = function(){
  return {
    "arr_1st":['ㄱ','ㄲ','ㄴ','ㄷ','ㄸ','ㄹ','ㅁ','ㅂ','ㅃ','ㅅ','ㅆ','ㅇ','ㅈ','ㅉ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ'], //초성 19개
    "arr_2nd":['ㅏ','ㅐ','ㅑ','ㅒ','ㅓ','ㅔ','ㅕ','ㅖ','ㅗ','ㅘ','ㅙ','ㅚ','ㅛ','ㅜ','ㅝ','ㅞ','ㅟ','ㅠ','ㅡ','ㅢ','ㅣ'],//중성 21개
    "arr_3th":['','ㄱ','ㄲ','ㄳ','ㄴ','ㄵ','ㄶ','ㄷ','ㄹ','ㄺ','ㄻ','ㄼ','ㄽ','ㄾ','ㄿ','ㅀ',
                'ㅁ','ㅂ','ㅄ','ㅅ','ㅆ','ㅇ','ㅈ','ㅊ','ㅋ','ㅌ','ㅍ','ㅎ'],//종성 28개
    "char_st":44032, //'가'의 유니코드 넘버(10진수)
    "char_ed":55203, //'힝'의 유니코드 넘버(10진수)
    /**
     * 문자열을 음소로 나눈 배열로 변환
     * @param  {[type]} str [description]
     * @return {[type]}        [description]
     */
    "divide":function(str){
      var r = null,char=null;
      var res = []
      for(var i=0,m=str.length;i<m;i++){
        char = str.charAt(i);
        r = this.divideCharToPhoneme(char);
        res.push(r?r:char);
      }
      return res;
    },
    /**
     * 문자에서 음소 알아내기
     * @param  {[type]} char [description]
     * @return {[type]}      [description]
     */
    "divideCharToPhoneme":function(char){
      var poses = this.divideCharToPos(char);
      if(!poses){
        return false;
      }
      return [this.arr_1st[poses[0]],this.arr_2nd[poses[1]],this.arr_3th[poses[2]]];
    },
    /**
     * 문자에서 음소 위치 알아내기
     * @param  {[type]} char [description]
     * @return {[type]}      [description]
     */
    "divideCharToPos":function(char){
      if(char.length>2){char=char.charAt(0);}
      var uniNum = char.charCodeAt(0);
      if(uniNum < this.char_st || uniNum > this.char_ed) return false;//한글이 아니다
      var uniNum2 = uniNum-this.char_st;
      var arr_1st_pos = Math.floor(uniNum2/588);
      uniNum2 = uniNum2%588;
      var arr_2nd_pos = (Math.floor(uniNum2/28));
      uniNum2 = (uniNum2%28);
      var arr_3th_pos = uniNum2;
      return [arr_1st_pos,arr_2nd_pos,arr_3th_pos];   
    }
  }
 
}();
 
try{
  module.exports = divideHangulPhoneme;
}catch(e){}
2018/08/03 11:50 2018/08/03 11:50
<script>
// 연산자의 연산 우선순위
function getOpPrec(op) 
    switch (op)
    {
        case '*':
        case '/':
            return 5;
        case '+':
        case '-':
            return 3;    
        case '(': 
            return 1;    
    }
    return -1;
}
// 연산자의 우선순위 비교
function whoPrecOp(op1, op2) 
{
    return getOpPrec(op1) >= getOpPrec(op2);    // op1의 연산순위가 높거나 같다면 참
}
function postfixNotation(exp) 
{  
    var stack = [], convExp = [], tok, popOp; 
    exp = exp.replace(/\s/g, '').match(/[\d\.]+|[^\d\.]/g).reverse();  // 공백제거 및  배열로 분리
    while (tok = exp.pop()) {    
        // 숫자가 아니라면(연산자라면) 
        if (isNaN(tok)) {    
            switch (tok)
            {
                case '(':
                    stack.push(tok);
                    break;
                case ')':
                    while (1) {
                        popOp = stack.pop();
                        if ( popOp == '(' )
                            break;
                        convExp.push(popOp);
                    }
                    break;
                case '+': case '-':
                case '*': case '/':
                    while (stack.length && whoPrecOp(stack[stack.length-1], tok))
                        convExp.push(stack.pop());
                    stack.push(tok);
                    break;
            }
        } else     // 숫자라면(피연산자라면)
            convExp.push(tok); 
    }          
    while (stack.length)  
        convExp.push(stack.pop());    
    return convExp;  
}
function evalPostfixNotation(exp) 
{
    var i, tok, n1, n2, stack = [];
    for (i in exp) {   
        tok = exp[i];
        // 연산자라면 
        if (isNaN(tok)) {
            n2 = Number(stack.pop());
            n1 = Number(stack.pop());
            switch (tok)
            {
                case '*':
                    stack.push(n1 * n2);
                    break;
                case '/':
                    stack.push(n1 / n2);
                    break;
                case '+':
                    stack.push(n1 + n2);
                    break;
                case '-':
                    stack.push(n1 - n2);
                    break;
            }
        } else     // 숫자라면            
            stack.push(tok);
    } 
    return stack.pop();
}
document.write( evalPostfixNotation(postfixNotation( '((3.5 - 2) + 3.4) * (14 - 10)' )));
</script>
2018/08/03 11:47 2018/08/03 11:47
https://spam.kisa.or.kr/integration/main.do

화이트 도메인설정하고
실시간 스팸 차단 리스트
메일 보내기 허용할때 다음 사이트에서 설정해주시면 됩니다.
2018/08/03 11:46 2018/08/03 11:46
//페이지 이동
function go($move = "back",$time = "0") {
    if($move == "back") echo("<script>history.back();</script>");
    else echo("<meta http-equiv='refresh' content='$time;url=$move'>");
}
//메시지창+히스토리백
function alert($message,$move = "back") {
    $print = "<script>window.alert('$message');";
    if($move == "back") $print .= "history.back();";
    else $print .= "location.href = '$move';";
    $print .= "</script>";
    echo("$print");
    exit;
}
//디비접속
function db() {
    global $connect;
    if(!$connect) {
        $connect = mysql_connect("localhost","testid","1234") or die("MySQL 접속 실패");
        mysql_select_db("testdb",$connect) or die("MySQL 접속 실패");
    }
}
//단어 필터링
function filter($string,$filter = "",$type = "change",$change = "###") {
    if(!$filter) return $string;
    $filter = explode(",",$filter);
    $fcount = sizeof($filter);
    for($i = 0;$i < $fcount;$i++) {
        if(eregi($filter[$i],$string)) {
            if($type == "error") alert("\"$filter[$i]\"은(는) 금칙어입니다.");
            else $string = str_replace($filter[$i],$change,$string);
        }
    }
    return $string;
}
//문자열 커트
function cutstr($str,$size) {
    if(!$size or (strlen($str) <= $size)) return $str;
    else for($i = 0;$i < $size;$i++) if(ord($str[$i]) > 127) $over++;
    return chop(substr($str,0,$size - $over%2))."...";
}
//테이블 생성여부 체크
function tablecheck($table,$db)
    $result = mysql_list_tables($db);
    for($i = 0;$i < mysql_num_rows($result);$i++) {
        if($table == mysql_tablename($result,$i)) return true;
    }
    return false;
}
//빠른 DB자료 로드(노가다 도우미;;)
function select($table,$field = "*",$where = "") {
    if(!$table) return false;
    $q = "select $field from $table";
    if($where) $q .= " where $where";
    $result = mysql_query($q);
    $return = mysql_fetch_array($result);
    return $return;
}
//////////아래는 제로보드 lib.php에서 발췌한 함수입니다.
// 빈문자열 경우 1을 리턴
function isblank($str) {
    $temp=str_replace(" ","",$str);
    $temp=str_replace("\n","",$temp);
    $temp=strip_tags($temp);
    $temp=str_replace(" ","",$temp);
    $temp=str_replace(" ","",$temp);
    if(eregi("[^[:space:]]",$temp)) return 0;
    return 1;
}
// 숫자일 경우 1을 리턴
function isnum($str) {
    if(eregi("[^0-9]",$str)) return 0;
    return 1;
}
// 숫자, 영문자 일경우 1을 리턴
function isalNum($str) {
    if(eregi("[^0-9a-zA-Z\_]",$str)) return 0;
    return 1;
}
// HTML Tag를 제거하는 함수
function del_html( $str ) {
    $str = str_replace( ">", ">",$str );
    $str = str_replace( "<", "<",$str );
    return $str;
}
// 주민등록번호 검사
function check_jumin($jumin) {
    $weight = '234567892345'; // 자리수 weight 지정
    $len = strlen($jumin);
    $sum = 0;
    if ($len <> 13) return false;
    for ($i = 0; $i < 12; $i++) {
        $sum = $sum + (substr($jumin,$i,1)*substr($weight,$i,1));
    }
    $rst = $sum%11;
    $result = 11 - $rst;
    if ($result == 10) $result = 0;
    else if ($result == 11) $result = 1;
    $ju13 = substr($jumin,12,1);
    if ($result <> $ju13) return false;
    return true;
}
// E-mail 주소가 올바른지 검사
function ismail( $str ) {
    if( eregi("([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)", $str) ) return $str;
    else return '';
}
// E-mail 의 MX를 검색하여 실제 존재하는 메일인지 검사
function mail_mx_check($email) {
    if(!ismail($email)) return false;
    list($user, $host) = explode("@", $email);
    if (checkdnsrr($host, "MX") or checkdnsrr($host, "A")) return true;
    else return false;
}
// 홈페이지 주소가 올바른지 검사
function isHomepage( $str ) {
    if(eregi("^http://([a-z0-9\_\-\./~@?=&-\#{5,}]+)", $str)) return $str;
    else return '';
}
// URL, Mail을 자동으로 체크하여 링크만듬
function autolink($str) {
    // URL 치환
    $homepage_pattern = "/([^\"\'\=\>])(mms|http|HTTP|ftp|FTP|telnet|TELNET)\:\/\/(.[^ \n\<\"\']+)/";
    $str = preg_replace($homepage_pattern,"\\1<a href=\\2://\\3 target=_blank>\\2://\\3</a>", " ".$str);
    // 메일 치환
    $email_pattern = "/([ \n]+)([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)/";
    $str = preg_replace($email_pattern,"\\1<a href=mailto:\\2@\\3>\\2@\\3</a>", " ".$str);
    return $str;
}
// 파일 사이즈를 kb, mb에 맞추어서 변환해서 리턴
function getfilesize($size) {
    if(!$size) return "0 Byte";
    if($size<1024) {
        return ($size." Byte");
    } elseif($size >1024 && $size< 1024 *1024)  {
        return sprintf("%0.1f KB",$size / 1024);
    }
    else return sprintf("%0.2f MB",$size / (1024*1024));
}
2018/08/03 11:45 2018/08/03 11:45
<?php // 모바일 PC 확인  함수 추가
function MobileCheck() { 
    global $HTTP_USER_AGENT; 
    $MobileArray  = array("iphone","lgtelecom","skt","mobile","samsung","nokia","blackberry","android","android","sony","phone");
    $checkCount = 0; 
        for($i=0; $i<sizeof($MobileArray); $i++){ 
            if(preg_match("/$MobileArray[$i]/", strtolower($HTTP_USER_AGENT))){ $checkCount++; break; } 
        } 
   return ($checkCount >= 1) ? "Mobile" : "Computer"; 
}
?>


<?php if(MobileCheck() != "Mobile"){ // 모바일 PC 함수 사용?>
<?php
      include 'a.php';
    ?>
<?php } ?>

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

!=  / ==

수정하면 변경 할수 있습니다. 
2018/08/03 11:44 2018/08/03 11:44
PHP 내장함수

<?php
$rest = substr("abcdef", 0, -1);  // returns "abcde"
$rest = substr("abcdef", 2, -1);  // returns "cde"
$rest = substr("abcdef", 4, -4);  // returns false
$rest = substr("abcdef", -3, -1); // returns "de"
?>
2018/08/03 11:40 2018/08/03 11:40
Pixabay.com 
상업적 이용, 수정, 배포
고화질 이미지를 검색하여 다운 받을 수 있어요!
unsplash.com 
보기만해도 반할 것 같은 아름다운 사진들!
매일매일 10장씩 다운받으세요:)
gratisography.com 
포토그래퍼 라이언 맥과이어의 감각적인
사진 작품을 무료로 사용 할 수 있어요!
pexels.com
최고의 퀄리티 베스트 포토!
자유롭게 무료로 다운 받을 수 있답니다. 
nos.twnsnd.co
과거의 공공장소 모습
빈티지한 느낌이 물씬나는 이미지를 무료로 공유하고 있어요
2018/08/03 11:34 2018/08/03 11:34
서치엔진은 검색결과에 따른 순위 부여에 있어서 나름대로의 방식으로 가중치를 부여하고 있기 때문에 동일한 키워드 조합으로 홈페이지를 등록하더라도 검색순위에 있어 서로 다른 순위가 나타난다. 
 
그러나 이러한 점을 염두에 두더라도 다양한 검색 우선순위에 있어서 공통적으로 중요시 여기는 항목을 채크함으로서 인터넷 마케팅과 홍보에 있어 탁월한 효과를 이루어 낼 수 있다.
 
이제 Search Engine에서 상위리스트에 올리는 방법을 알아보기로 하자.
 
 
 
\'Description tag\' 의 내용선택
 
<META NAME="description" CONTENT="키워드 나열방법보다는 웹페이지의 내용을 요약설명하되 핵심내용을 먼저 쓰고 부가설명은 나중에 위치시킨다."> 
Search Engine은 검색 결과를 출력할 때 해당 web page에 대한 설명을 하기 위해 page 내용이 요약되어 있는 description tag의 내용을 참고하기 때문에 이 부분은 인터넷 사용자들이 해당 web page 방문여부를 결정하는데 결정적인 영향을 주고 있다. 키워드가 되는 단어들을 의미 없이 나열하지 말고 해당 web page의 내용을 요약 하는 방식이 좋다.
 
 
 
\'Description tag\'의 길이 제한
 
<META NAME="description" CONTENT="공백포함 150자 이내">
 
각 Search Engine별로 길이 제한이 다르기 때문에 모든 Search Engine에서 서술한 내용이 모두 보여기지기를 원한다면 공백을 포함하여 150자 이내로 하는 것이 좋다.
 
그 이상의 내용을 쓰고자 한다면 먼저 150자 이내에 가장 핵심적인 내용을 쓰고 그 후에 부가적인 설명을 하도록 하는 것이 좋다. 
 
 
 
\'Keywords tag\'  키워드의 선택
 
어떤 Search Engine 들은 index 저장을 위해 할당된 디스크 공간을 절약하고 검색속도를 빠르게 하기 위해 "internet" 이나 "web"등과 같이 흔히 사용되는 몇몇 단어들(Stop Words)에 대해서는 index 시 이를 포함시키지 않거나 또는 검색자가 검색을 실시할 때 해당 단어에 대한 검색은 생략하고 있다.
 
이와 같은 stop word를 keyword로 설정하였을 경우 index에 포함되지 않기 때문에 page 순위 향상에 아무런 도움이 되지 않기 때문에 이에 대한 해결책으로 "web design" 과 같은 형식으로 단어를 " " 로 묶어서 처리하여야 한다.
 
즉 "internet", "web" 과 같은 너무 흔한 키워드는 robot이 인식하지 않기 때문에 효과가 없으며, 문서의 성격과 관련이 높은 키워드를 선택함으로서 표적고객을 확보할 수 있다.
 
그러나 역발상으로 \'amazon\', \'yahoo\', \'sex\' 와 같이 많은 사람들이 즐겨 검색에 사용하는 유인키워드를 입력함으로서 다양한 사람들의 방문을 유도하는 방법들이 활용되기도 하는데, 이러한 경,우에도 글자색을 배경색과 일치시키는 Font Matching 방법이 자주 적용되어진다.
 
 
 
\'Keywords tag\' 단어의 개수 제한
 
키워드는 200개 이하의 숫자가 적합한데 그 이상의 키워드를 입력하였을 경우 penalty를 받게 되므로 이에 주의하여야 한다.
 
 
 
조합형 Keyword 활용 
 
홈페이지를 명확하게 설명할 수 있는 키워드를 선택한 후에는 이를 그대로 키워드로 기입하지 말고 조합형 키워드로 새롭게 구성하여 추가하는 것이 좋다.
예를 들자면 keyword로 "우표", "수집"과 같이 단일형 키워드만으로 구성하는 것 보다는 "우표 수집"과 같이 조합형 키워드를 추가로 활용하는 것이 필요하다.
 
 
 
조합형 키워드의 배열 
 
조합형 키워드의 배열은 "우표수집", "우표", "수집"의 순서로 배열하는 것이 좋으며 조합형 키워드의 반복에 있어서도 단어별 반복보다는 교차반복을 하는 것이 좋다.
즉 "우표수집", "우표", "수집", "우표수집", "우표", "수집", "우표수집", "우표", "수집"과 같은 방식으로 교차하여 반복하는 것이 좋으며\' "우표수집", "우표수집", "우표수집", "우표", "우표", "우표", "수집", "수집", "수집" 과 같은 방식의 반복은 penalty를 받게 될 가능성이 있다.
 
 
 
\'Keyword\' 내에 동일 단어 반복 횟수
 
일반적으로 keyword내에 동일 단어가 7개 이상 반복되면 panelty가 적용되는데 Search Engine마다 그 기준이 다르기 때문에 모든 Search Engine에 등록되기를 원한다면 3번 이상 반복하지 않는 것이 좋다. 
 
 
 
\'Title\' 내의 키워드 위치  - <title> 키워드 </title>
 
모든 search engine은 web page의 title 에 keyword가 나타날 경우 높은 가중치를 부여하고 있다.
따라서 홈페이지의 타이틀 부분 즉 <title>과 </title> 사이에 반드시 키워드를 입력하여야 하며 해당 page의 가장 처음 부분 가까이에 keyword를 위치시킴으로써 높은 우선 순위를 보장받을 수 있다.
 
 
 
문서내의 키워드의 빈도    - <body> 키워드 </body>
 
모든 Search Engine은 페이지내에 keyword가 기타 다른 단어와 비교하여 얼마나 높은 빈도를 보이는 가를 분석하기 때문에 문서부분 즉 <body>와 </body> 사이에 Keyword 빈도를 높임으로써 해당 page를 높은 우선 순위에 올릴 수 있다. 
 
 
 
주의 : Keyword Spamming 
 
그러나 이러한 점을 악용하여 keyword의 빈도를 높이기 위해 page내에 배경색상과 동일한 keyword(Font Matching)를 수백개 이상씩 입력하게 됨에 따라 Search Engine들은 web page내 일정한 횟수 이상의 keyword가 나타날 경우 spam으로 간주하고 패널티를 적용하여 순위를 깍거나 robot이 index 대상에서 제외시키도록 하고 있다.
 
 
 
Link Popularity 
 
WebCrawler와 같은 몇몇 Search Engine들은 해당 web page가 얼마나 많은 다른 외부의 web page에 의해 링크되어 있는가를 판별하여 우선순위를 결정하기도 하는데 이를 Link Popularity라 한다.
 
이와 더불어 새롭게 나타나는 경향 중 하나는 홈페이지의 엘리트 그룹화다. 위와 같은 방법 등을 써서 검색엔진에서 1∼10등을 차치한 사이트들이 소위 동맹을 맺는 방식이다. 이 사이트들은 서로 자기들끼리 링크하기 때문에 1등부터 10등 중 어느 사이트로 들어와도 링크만 따라간다면 방문자는 이들 사이트 모두를 방문하게 되는 것이다. 이들 10개 사이트 중 마음에 드는 것이 있으면 자기 홈페이지에 링크시키게 된다. 
 
이런 일이 반복되면 탑 텐 사이트들은 그 키워드의 중심 축이 된다. 한번 중심 축으로 자리 잡으면 검색엔진의 랭킹에서도 유리하다. 알타비스타와 같은 검색엔진은 다른 홈페이지에 링크가 많이 되면 될수록 랭킹을 올려주기 때문이다. 
 
다른 사이트에 링크가 많이 되어 있으면 그만큼 인기있는 사이트로 여기는 탓이다. 참고로 자기 홈페이지가 인터넷에서 얼마나 링크되어 있는지 알려면 알타비스타에서 \'링크\'(link) 명령어를 쓴다. 키워드 난에 다음과 같이 적고 \'서치\' 버튼을 누른다. 
 
  link:자기 홈페이지 주소나 도메인 예) link:altavista.com   link:altavista.com/inchul/sin, link:altavista.com/inchul/sin/epgi.html 
 
 
 
 
페이지의 갱신정도 
 
일부 서치엔진은 page가 갱신되는 정도에 따라 robot의 방문률이 높아지도록 설정하였기 때문에 가급적이면 페이지를 자주 갱신하는 것이 변경된 페이지 정보에 대한 명확한 전달이 가능하다.
 
 
 
 
복수형 키워드 (영어키워드의 경우)
 
영어로 작성된 키워드의 경우 단수형 단어 보다는 복수형의 단어를 활용하는 것이 좋다.
예를 들어 "stamp"를 키워드 보다는 "stamps"와 같이 복수형태의 키워드를 이용하는 것이 좋다. 
이와 같은 이유는 stamps를 키워드로 사용하면 stamp 및 stamps에 대한 검색 모두에 리스트 될 수 있지만 stamp를 사용하면 stamps를 검색어로 사용했을 때 제외될 수 있기 때문이다.
 
 
 
다양한 키워드 사용
 
자신의 페이지에 적합한 키워드를 집중적으로 기록함으로서 해당 키워드 검색시 높은 순위에 올려질 가능성이 많다. 하지만 순위는 다소 떨어질지라도 다양한 키워드를 입력함으로서 다양한 항목의 검색리스트에 올려질 가능성이 높아진다고 할 수 있다.
 
 
 
Headline Tag의 이용 <H1>
 
키워드를 <H1>과 같은 Headline tag를 활용함으로서 검색리스트 에 있어 높은 순위를 설정받을 수 있다. 
 
 
 
KeyWord GateWay
 
이외에도 무료홈페이지서비스를 이용하여 유인페이지를 작성한후 유인페이지내에 메타태그 정보 와 키워드를 구성한후 다음과 같이
 
<META HTTP-EQUIV="Refresh" CONTENT="5;URL=자신의 홈페이지 URL">
 
메타태그를 구성하면 검색로봇이 유인페이지를 인식하여 검색결과를 보여주면 자동으로 5초후에 자신의 메인페이지로 이동하는 KeyWord GateWay도 메타태그를 활용한 프로모션방법으로 많이 활용되고있다. 
 
대부분의 유명 웹프로모션회사들은 이러한 KeyWord Gateway를 자사의 서버에 만든후 검색순위관리와 페이지구성을 매주 새롭게 갱신시켜주고있다.
 
이러한 KeyWord Gateway는 성인사이트에서 서치엔진, 뉴스그룹, 배너익스체인지를 통하여 사이트를 홍보한후 방문자들을 유인하는 방법으로 많이 쓰이고있다.
 
2018/08/03 11:24 2018/08/03 11:24
복잡한 머리속의 생각들을 비쥬얼하게 잘 정리해 줄 수 있는 마인드맵 툴을 소개합니다.
http://www.xmindkorea.net/
개인은 무료로 다운받을 수 있습니다. 


사용자 삽입 이미지
2018/08/03 11:23 2018/08/03 11:23
사용자 삽입 이미지


보통 사이트맵 제작을 위해 웹서비스를 이용하시는데요
설치형으로 간단하게 filter 기능 및 spider 기능이 사용가능한 프로그램 소개합니다.
http://g-mapper.co.uk/sitemap-generator.aspx 
 
에서 설치받아 사용하시면 됩니다.
2018/08/03 11:20 2018/08/03 11:20
filemtime — 파일 수정 시간 가져 오기
 
설명 :
int filemtime ( string $filename )
이 함수는 파일의 데이터 블록이 기록되는 시간, 즉 파일의 내용이 변경된 시간을 반환합니다.
 
인수 :
filename
파일 경로
 
반환값 :
파일이 마지막으로 수정 된 시간을 반환하고, 실패시 거짓을 반환합니다. 시간은 Unix 타임 스탬프로 반환되며 이는 date () 함수에 적합합니다.
 
예제 :
 
 
<?php
// 예 : somefile.txt가 마지막으로 수정되었습니다 : December 29 2002 22:16:23.
 
$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}
?>
2018/08/03 11:16 2018/08/03 11:16
<script>
function youtubeId(url) {
    var tag = "";
    if(url)  {
        var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
        var matchs = url.match(regExp);
        if (matchs) {
            tag += "유튜브 아이디 : "+matchs[7];
        }
        return tag;
    }
}
    var s1 = "https://www.youtube.com/watch?v=pAWk-yh2ysc";
    var s2 = "http://youtu.be/WUzwkGmnAaw";
    document.write(youtubeId(s1));
    document.write("<br />");
    document.write(youtubeId(s2));
</script>
2018/08/03 11:11 2018/08/03 11:11
ucfirst - 문자열의 첫 번째 문자를 대문자로 만듭니다.
설명 ¶
문자열 ucfirst ( 문자열 $str )
str문자가 영문자이면 대문자 가 된 첫 문자를 포함한 문자열을 반환합니다 .
'알파벳'은 현재 로켈에 의해 결정됩니다. 예를 들어, 기본 "C"로케일에서 umlaut-a (ä)와 같은 문자는 변환되지 않습니다.
매개 변수 ¶
str
입력 문자열.
반환 값 ¶
결과 문자열을 반환합니다.
예 ¶
Example # 1 ucfirst () 예제
<?php
$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!
$bar = 'HELLO WORLD!';
$bar = ucfirst($bar);             // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>
2018/08/03 11:09 2018/08/03 11:09
header 를 이용하는 방식과 javascript 를 이용하는 방법을 안내합니다.
방식은 PHP 페이지 최상단에서 위치해야 정상 작동하며, 강력하게 작동합니다.
javascript는 페이지 상단이 아니어도 작동하지만, javascript를 제한한 경우에 작동하지 않습니다.
1. header location 이용
<?php
if($_SERVER['HTTPS'] != "on"){
    $ssl_port = "";  //  443 포트를 사용하지 않는경우에 이용할 포트번호 입력
    if ($ssl_port == "") { 
        $redirect_URL = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    } else {
        $redirect_URL = "https://".$_SERVER['HTTP_HOST'].":".$ssl_port.$_SERVER['REQUEST_URI'];
    }
    header("Location: ".$redirect_URL);
}
?>
2. javascript 이용
<?php
if($_SERVER['HTTPS'] != "on"){
    $ssl_port = "";  //  443 포트를 사용하지 않는경우에 이용할 포트번호 입력
    if ($ssl_port == "") { 
        $redirect_URL = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    } else {
        $redirect_URL = "https://".$_SERVER['HTTP_HOST'].":".$ssl_port.$_SERVER['REQUEST_URI'];
    }
    echo "<script type=\"text/javascript\">\n";
    echo "<!--\n";
    //echo "location.href = '". $redirect_URL ."';\n";  // 현재창으로 전송
    echo "parent.location.href='". $redirect_URL ."';\n";  // 부모창으로 전송
    echo "//-->\n";
    echo "</script>\n";
}
?>
2018/08/03 11:08 2018/08/03 11:08