WEB 80

[PHP] 문자열 자르기 한글깨짐 substr 말고 iconv_substr

보통 개발일을 하면서 문자열을 잘라야 할 경우 퍼블단에서 div로 overflow:hidden 을 사용하는게 대부분이다. (필자는 그렇다.) 하지만 PHP에서 문자열을 잘라야 할때는 substr 함수를 사용하는데 캐릭터셋이 UTF-8이고 아이디나 닉네임 뒤에 몇자리를 가려야 할 상황에 substr을 사용하다보면 한글깨짐 현상이 있을수 있다. 예를 들어 $nickname = "이지코드이지코드"; echo substr($nickname, 0, 5); // 이�� 이렇게 출력된다. 이는 euc-kr에서는 한글을 2바이트로 처리 / utf-8에서는 3바이트로 처리한다고 한다. 하여 문자깨짐을 방지하려면 substr 말고 다른 함수를 써야 한다. 대체 함수로 mb_substr이 있는데 이 함수는 mb_string..

WEB/PHP 2016.11.09

[MySQL] 스토리지엔진 innoDB와 MyiSAM

데이터 접근의 방식이 다르다. InnoDB와 MyiSAM이외에도 Cluster(NDB), Archive, Federated등의 타입이 있다. MyiSAM은 Full-Text 인덱스를 지원하고 인덱스에 메모리 캐시를 지원하지만트랜잭션은 미지원, 컬럼의 변경이나 삭제 등등의 기능은 좋지 못하지만 데드락은 예방할 수 있다. InnoDB는 ACID 트랜잭션을 지원하지만 MyiSAM보다 로드가 느리다.데이터 압축이 불가능하지만 에러복구기능이 있다 Cluster(NDB)트랜잭션 지원, 매우 빠른 속도, PK사용시 최상의 속도 Archive5.0부터 추가된 엔진, 자동 데이터 압축이 되지만 Insert와 Select만 가능하고타 엔진보다 공간 절약이 좋다 Federated5.0부터 추가되었으며 분산 데이터베이스 환경..

WEB/MySQL 2015.03.19

[PHP] fopen을 사용한 txt파일로 로그남기기

외주업체와의 통신상에 문제가 생겼다. 로그를 남겨야 하는 상황, 즉 디비를 쓰기엔 무리라고 판단 부분적으로 로그를 남겨 문제점을 파악하기 위해 단기적으로 로그를 쌓아야 할 경우 txt파일에 로그를 기록하여 분석하는데 사용하도록 한다. php의 fopen이라는 함수를 사용하여 이미 만들어져있는 txt파일을 오픈하고 기존내용과 내려쓰기를 이용한 내용 축적을 한다. $log_txt = $userid."|".$datetime."|".$data."|".$ip."|".$idx; $log_dir = "/home/www/data/log"; $log_file = fopen($log_dir."/log.txt", "a"); fwrite($log_file, $log_txt."\r\n"); fclose($log_file); $..

WEB/PHP 2014.02.11

[JQuery] jquery tools silde view의 수정

소스를 다루기로 하고 시작한 블로그지만귀차니즘으로 인해.. ㅠ_ㅠ 조만간 호스팅으로 데모페이지를 만들어 소스를 좀 다뤄봐야겠다.. 흔히 많이들 쓰는 jquery.tools.js 이 중 슬라이드를 사용하면서 좌우버튼, 하단버튼의 기능은 살리고메인 이미지 클릭이벤트만 제거 해달라는 지식인글을 보고 작성해본다. http://www.htmldrive.net/items/show/41/Slideshow-plugin-for-the-Tabs-with-jquery 위 슬라이드의 기본 사용법을 적용하게 되면메인 content 내용을 클릭하였을때 슬라이드가 이동하게 되는데 붉은색 글씨처럼 옵션을 추가해주면 메인클릭 이벤트를 사용하지 않을수 있다.

WEB/Js, JQuery 2013.02.05

[PHP] 외부 사이트의 xml긁어오기

rss로 제공하는 xml이 있을시본 사이트로 해당 xml을 파싱하여 가져와야 할 경우 $xml = "xxx.com/aaa.php"; $doc = new DOMDocument();$doc->load($doc); if(!$doc) { // 불러올수 없다면 echo "not";} else { $items = $doc->getElementsByTagName('item'); // 반복되는 item태그중 $records = array(); foreach($items as $item) { $record = array(); if($item->childNodes->length) { foreach($item->childNodes as $i) { if($i->nodeName != 'title' && $i->nodeName ..

WEB/PHP 2013.01.08