[PHP] 메모리 부족

Linux, PHP
[PHP] 메모리 부족 에러메세지 : Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) 메모리가 부족해서 일어나는 일입니다. 아래의 방법으로 해결이 가능 합니다.방법중에 하나인데 이 방법은 필요한 PHP 파일에서만 작동하기에 전체 메모리를 수정하지 않아도 된다는 점에 있습니다. #메모리 제한 늘리기 ini_set('memory_limit','192M'); #메모리 제한 풀기 ini_set('memory_limit','-1'); 또 다른 방법으로는 php.ini 을 직접 수정해서 웹서버를 재실행하는 것입니다.전체에 적용됩니다. ; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit memory_limit = 메모리사이즈(숫자)M
Read More

[JAVASCRIPT] 카카오링크 링크 공유 오류(init문제 기록)

JavaScript
[JAVASCRIPT] 카카오링크 링크 공유 오류(init문제 기록) 카카오톡 버튼을 클릭하면은 카카오톡이 실행되면서 메세지를 전송할 수 있게 하는 기능을 카카오에서는 제공을 하고 있습니다.설명을 보면은 간단하게 처리를 할 수 있지만 한번 로딩된 페이지에서 카카오톡 전송 버튼을 1회 누르고 다시 누를경우에 문제가 발생하는 경우가 있어서 기록을 남겨 둡니다. function sendKakalink() { Kakao.init('카카오톡API key'); Kakao.Link.sendTalkLink({ label: '메세지', image: { src: '이미지 주소', width: '이미지 넓이', height: '이미지 높이' }, webButton: { text: '제목', url: '웹페이지 URL' // 앱 설정의 웹 플랫폼에 등록한 도메인의 URL이어야 합니다. } }); } 초기에는 위에 처럼 사용하여서 초기 전송에는 성공하였지만 한번 보낸후 다시 버튼을 누르면은 반응을 하지 않아서 수정 하게 되었습니다.카카오의 개발자 포럼에서 어렵게 찾았습니다. 애초에 이런 문제가 일어난것이 제가 코드를 잘못 작성한것도 있지만은 레퍼런스에서는 전혀 설명이 되어 있지 않기도 합니다. 포럼에서 코멘트를 달아 주신분이 kakao.init 한번만 호출 해야 한다고…
Read More
[PHP] 스크래핑 작업(nuskin)

[PHP] 스크래핑 작업(nuskin)

PHP
[PHP] 스크래핑 작업(nuskin) 개발환경 : PHP5 CLI, MySQL요구사항 : 각 분류에 대한 처리, 상세페이지에서 설명과 이미지 저장 해당 사이트를 어느 부분을 캡쳐한 부분 입니다.해당 사이트에서의 정보를 일정 부분 취득하기를 원하기에 해당 사이트의 정보를 가지고 작업을 하였습니다. 목록이 구성되어 있으며 해당 목록페이지에 묶음 상품도 있어서 해당 내역도 처리를 해야 합니다.일반 상품과 묶음상품을 구분해서 분류를 확장해야 하며, 일반 상품이 소속된 분류도 처리를 해야 합니다. 제품 상세 페이지 이며, 해당 페이지에서도 원하는 부분만을 가지와 와서 처리를  해야 하는 작업입니다.원하는 부분이 있고, 원하는 않은 부분이 있기에 잘 구분해서 원문을 이상없이 수집하는 규칙에 맞게 설정을 해서 수집을 해야 합니다. 위 사진은 수집한 부분에서 일정부분을 화면 캡쳐 한 사진 입니다.위에서 처럼 각 부분을 가지고 해서 처리를 해야 하는 일입니다. 이번에는 작업이 다른것은 이미지 파일 이름을 임의로 변경을 하지 않고, 그대로 유지한채로 가져서 local에 저장을 해서 처리를…
Read More
[PHP] bevmo 스크랩 작업

[PHP] bevmo 스크랩 작업

PHP
[PHP] bevmo 스크랩 작업 PHP로 CLI 모드에서 해당 사이트를 내용을 가지고 오는 작업입니다. 카테고리별로 분리를 하고 다시 해당 카테고리 내에서 제품의 정보와 이미지 개인이 저장 할 수 있도록 저장 하였습니다. 개발환경 : PHP + MySQL 해당 정보를 가져오는 사이트의 일부 캡쳐 화면 입니다. 와인을 전문적으로 판매 하는 사이트입니다. 해당 사이트의 다른 정보 보다는 와인과 그 상세 설명등을 DB화해서 개인이 원하는대로 정보를 가공하는 일이였습니다. 웹을 이용하지 않고 단순하게 Windows에서 PHP를 가동하여서 CLI 모드로 실행되면서 사이트를 접속해서 정보를 가져오는 일입니다. 아래는 전체는 아니며 해당 사이트를 가지와 와서 가공한 DB의 정보를 캡쳐한 화면 입니다. 단순하게 텍스만 가져오지 않고 해당 사이트가 제공하는 이미지 파일을 local에 저장하여서 활용도 할수 있습니다. 각 분류에 맞게 디렉토리를 설정하고 이미지를 이름을 저장하고 관리 할 수 있습니다.
Read More
[C#] herbalife 스크래핑

[C#] herbalife 스크래핑

CSharp
[C#] herbalife 스크래핑 로그인 처리가 힘들어서 C#으로 제작하게 되었습니다. 제작 : C# .NetFrameWork 4.5 사용 : Windows10(x86), Windows7(x86) 사용 라이브러리 : HtmlAgilityPack(https://htmlagilitypack.codeplex.com/) 1. 로그인 처리를 하고 원하는 페이지로 이동을 합니다. 이곳에서 현재 URL값과 요청한 URL 정보가 동일할 경우에만 작동을 하도록 하였습니다. 2. 카테고리를 가져와서 링크주소를 획득하고 List로 가지고 있습니다. 이때 카테고리 링크만 가지고 다시 한번더 페이지를 접속해서 각 상품의 URL 주소를 획득 합니다. 3. 각 페이지에 접속해서 원하는 정보를 추출하여서 가공후 DB에 저장을 합니다. 각 페이지 접속을 하기 때문에 숫자가 많을수로 대기 시작이 길어 집니다. 이 단계에서는 필요한 이미지 파일로 링크를 추출 하여서 저장을 합니다. 개인정보가 나오는 부분은 모두 캡쳐 하지 않았습니다. 해당 페이지의 제품을 검색하고 각 제품코드 및 설명 이미지를 가져와서 개인 DB화 시키는 작업을 한것에 대해서 간단히 캡쳐 해 놓은 것입니다.
Read More

[MySQL] 다수의 필드에 카운터 구하기

Database
정말 가끔 사용을 하다 보니깐 계속 까먹게 되어서 기록을 남기게 됩니다.동일 필드지만은 구분이 달라서 개별로 카운터를 구해야 하는 경우가 있어서 사용하는데, 정말 아주 가끔 사용을 합니다. SELECT COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT( if(필드명 LIKE '%검색어%', 필드명, null) ) as 결과시보여질필드명, COUNT(필드명) as 결과시보여질필드명 FROM 테이블명
Read More

[PHP] RSS item 항목 숫자 제한하기

PHP
필요하다기 보다는 놀면서 하나 만들어 본것입니다.가끔 가다가 들리는 뽐뿌에서 NAS 포럼에서 본 글인데 아직 답변이 없어서 한번 만들어 보았습니다. 뽐뿌 원문 링크 주소는 " http://www.ppomppu.co.kr/zboard/view.php?id=nas&page=1&divpage=4&no=18328 " 입니다.블로그 주소를 남겨 놓지 않았기 때문에 뽐뿌에도 기록을 남기고 제 블로그에도 기록을 남깁니다. <?php require_once('./Snoopy.class.php'); if($_GET["k"]) { $k=$_GET["k"]; } else { $k="720p-with"; } if($_GET["b"]) { $b=$_GET["b"]; } else { $b =""; } // 테스트용 $k = urlencode("with+720p+무한"); $b = "torrent_variety"; $snoopy = new snoopy; $snoopy->fetch("http://torrentdn.net/bbs/rss.php?k=".$k."&b=".$b.""); $txt = $snoopy->results; preg_match('/(.*?)<item>/i', $txt, $txtMatch ); // item 시작전의 정보를 취득 // item외에 영역은 모두 삭제 처리 $txt = str_replace($txtMatch[1], "", $txt); // item 태그 열기 전 태그 및 문자 삭제 $txt = str_replace("</channel></rss>", "", $txt); // item 태그 닫고 channel, rss 태그 삭제 // item을 배열로 처리 하기 위해서 배열 문자 삽입 $txt = str_replace("</item>", "</item>\r\n", $txt); $txt…
Read More

SNS 공유 기능 META 태그 정리

WWW
SNS 공유 기능 META 태그 정리 <!-- 페이스북 --> <meta property="og:title" content="제목"/> <meta property="og:site_name" content="사이트명"/> <meta property="og:type" content="분류 (website,article,place,product,event ...)"/> <meta property="og:url" content="주소"/> <meta property="og:image" content="썸네일 (200x200.jpg)"/> <meta property="og:description" content="요약글"/> <!-- 트위터 --> <meta name="twitter:card" content="분류 (summary, photo, gallery ...)"> <meta name="twitter:title" content="제목"> <meta name="twitter:site" content="사이트명"> <meta name="twitter:creator" content="작성자명"> <meta name="twitter:image" content="썸네일"> <meta name="twitter:description" content="포스트 내용"> <!-- 미투데이 --> <meta property="me2:post_body" content="포스트 내용"/> <meta property="me2:post_tag" content="태그"/> <meta property="me2:image" content="썸네일"/> <meta property="me2:latitude" content="위도"/> <meta property="me2:longitude" content="경도"/> <meta property="me2:post_icon" content="포스트 아이콘 (1~12 숫자"/> <meta property="me2:category1" content="카테고리1"/> <meta property="me2:category2" content="카테고리2"/> 출처 : http://classe82.blog.me/20198541611 http://somsommi.com/blog/sns-sns-%EA%B3%B5%EC%9C%A0%ED%95%98%EA%B8%B0-%EA%B8%B0%EB%8A%A5%EC%9D%84-%EC%9C%84%ED%95%9C-%ED%83%9C%EA%B7%B8-%EC%A0%95%EB%A6%AC/
Read More

[PHP] 페이징 함수

PHP
[PHP] 페이징 함수 상당히 오래전에 만든것인데 블로그에 그냥 기록을 해놓고 나중에 필요하면은 사용할 생각입니다.참조정도로만 사용할 수 있지 않을까 싶습니다. <?php /*************************** * @write_pages : 한페이지에 보여줄 행 * @cur_page : 현재 페이지 * @total_page : 총 페이지 * @url : URL * @add : ??? * 2011.03.14 **************************/ function get_paging($write_pages, $cur_page, $total_page, $url, $add="") { $str = ""; $str .= "<a href='".$url."1".$add."'>처음</a> "; // 현재 페이지로부터 앞에 몇개가 보여질지 정함 $start_page = (int) $cur_page - 6; // 페이징 목록 숫자를 정함 if($total_page < $write_pages) { $write_pages = $total_page; } // 페이징 시작이 0보다 작다면은 0으로 시작 하도록 함 if($start_page < 0) { for($i=0; $i < $write_pages; $i++) { $k = $i + 1; if ($cur_page != $k) { $str .= "<a href='".$url.$k.$add."'><span>".$k."</span></a>"; } else { $str .= "<strong>".$k."</strong>"; } } }…
Read More

HTTP Protocol Code Meaning 의미

WWW
HTTP Protocol Code Meaning 의미 100 Continue 계속 101 Switching Protocols 스위칭 프로토콜 200 OK (no error) 확인 (오류 없음) 201 Created 생성됨 202 Accepted 수락함 203 Non-Authoritative Information 신뢰할 수없는 정보 204 No Content 아무 내용 없음 205 Reset Content 콘텐츠를 재설정 206 Partial Content 일부 콘텐츠 300 Multiple Choices 여러 선택 301 Moved Permanently 영구적으로 이동됨 302 Moved Temporarily 임시 이전 304 Not Modified 수정되지 않음 305 Use Proxy 프록시를 사용 400 Bad Request 잘못된 요청 401 Unauthorized 권한이없는 402 Payment Required 지불 필요 403 Forbidden 금지된 404 Not Found 찾을 수 없음 405 Method Not Allowed 방법 허용되지 않음 406 Not Acceptable 허용되지 않음 407 Proxy Authentication Required 프록시 인증 필요 408 Request Time-Out 요청 시간 초과 409 Conflict 갈등 410 Gone 사라짐 411 Length Required 소요…
Read More

[MySQL] 비밀번호 분실시 재설정

Database
[MySQL] 비밀번호 분실시 재설정 현재 작동중이 MySQL를 종료를 합니다.정상적인 방법으로 종료되지 않을 경우에 대비해서 강제로 종료하는 방법까지 나열 합니다. find / -name mysqld_safe $ /etc/init.d/mysqld stop $ ps aux |grep mysql // 종료되었는지 확인을 하기 위한 명령어 $ killall mysql // 종료되지 않았다면은 강제로 다시 종료 $ ps aux |grep mysql // 종료되었는지 확인을 하기 위한 명령어 $ ./mysqld_safe --skip-grant-tables & $ mysql -u root $ mysql> use mysql; $ mysql> update user set password=password('PASSWORD') where user='root'; $ mysql> flush privileges; $ mysql> quit $ /etc/init.d/mysqld start
Read More

[C#] winform 단축키(핫키) 설정

CSharp
[C#] winform 단축키(핫키) 설정 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { Keys key = keyData & ~(Keys.Shift | Keys.Control); switch (key) { case Keys.F: if ((keyData & Keys.Control) != 0) { MessageBox.Show("Ctrl+F"); return true; } break; case Keys.F5: MessageBox.Show("f5"); return true; break; } return base.ProcessCmdKey(ref msg, keyData); }
Read More

[MySQL] 백업 및 복구

Database
1. mysqldump 사용법 # mysqldump -u[userId] -p[password] --all-databases > dump.sql // 서버에 있는 모든 것의 논리 백업 생성 # mysqldump -u[userId] -p[password] --databases [DB명] > dump.sql // 특정 데이터베이스만의 논리 백업 생성 # mysqldump -u[userId] -p[password] [DB명] [테이블명]  * 기타 옵션   -A, --all-databases : 모든 DB 덤프   -B, --databases : 특정 DB를 덤프   --opt : 버퍼링을 비확성화 하고, 많은 데이터를 덤프에 있는 소량의 SQL구문에 기록해 더효율적으로 동작하다록 한다.   --allow-keywords, --quote-names : 예약어를 사용하는 테이블을 덤프하고 복원할 수 있게 한다.   --lock-alltables : 전역적으로 일관된 백업을 만들도록 "FLUSH TABLES WITH READ LOCK"을 사용한다.    --tab : "SELECT INTO OUTFILE"로 파일을 덤프하여, 덤프 및 복원 속도가 매우 빠르다.   -d, --no-data :  데이터는 제외하고 스키마만 덤프   -t, --no-create-info : 스키마는 제외하고 2. dump 파일 복원 방법 - mysql -u [userId] -p [password] [DB명] < dump.sql -…
Read More

웹페이지 카카오로 공유하기

JavaScript, WWW
웹페이지 카카오로 공유하기 카카오톡 공유하기 위해서 필요한 자바스크립트를 호출 합니다. <script src="https://developers.kakao.com/sdk/js/kakao.min.js"></script> 카카오톡에 메세지를 보내는 방법 입니다. <script> function kakaoSend(){ Kakao.init('API Key'); Kakao.Link.sendTalkLink({ label: '라벨', image: { src: '이미지 주소', //http가 붙은 전체 경로 width: '넓이', height: '높이' }, webButton: { text: '버튼 타이틀', url: '링크URL' // 앱 설정의 웹 플랫폼에 등록한 도메인의 URL이어야 합니다. } }); } </scritp> <a href="#" onclick="kakaoSend(); return false;">카카오톡 공유</a> 카카오 스토리에 해당 페이지를 공유 할 수 있습니다. <script> function shareStory() { Kakao.Story.share({ url: '공유할 웹페이지 주소', text: '공유할 웹페이지 요약 혹은 메세지' }); } </scritp> <a href="#" onclick="shareStory(); return false;">카카오스토리 공유</a>
Read More