전체 글1748 문자열을 X로 마킹하는 함수 function strHideWord($str,$extent=null,$color="",$pos=0) { $str_len = strlen($str); $str_key = array(); $seq = 0; for($i=0;$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.. 2014. 4. 12. PHP 코드를 최적화하는 40가지 팁 (번역) 가끔 PHP로 웹페이지를 작성할 일이 있는데, 유용한 팁을 우연히 보게 되어 한글로 옮겨적어본다. 원본은 40 Tips for optimizing your php Code 1. If a method can be static, declare it static. Speed improvement is by a factor of 4. 메쏘드가 static이 될 수 있다면 static으로 선언하라. 4배 빨라진다. 2. echo is faster than print. echo가 print보다 빠르다. 3. Use echo’s multiple parameters instead of string concatenation. 문자열을 이어붙이지 말고, echo를 이용하여 여러 개의 파라미터를 적어라. 4. Set the.. 2014. 4. 11. <![CDATA[ ]]> 이 구문은 무엇을 뜻하는 것일까요? CDATA는 SGML이나 XML에서 문자열(string)을 표현할 때 사용하는 토큰입니다. 저 안에 들어있는 내용은 문자열데이터라는 뜻이지요. 저안에 들어가 있는 태그는 무시해도 되는 태그라는 것을 파서에게 알려주므로 오동작이나 오류를 막을 수 있습니다. <script type="text/javascript"> // 2014. 4. 11. 이벤트 핸들러 (Event Handler) 모음 onabort 이미지의 다운로드를 중지할 때 (브라우저의 중지버튼) onactivate 개체가 활성활 될 때 발생 (태그의 기능이 작용할 때 발생하는 이벤트로 예를 들어 링크를 누를 경우 링크가 옮겨질때 발생하는 것을 감지하는 이벤트 핸들러) onafterprint 문서가 출력되거나 혹은 출력하기 위해 출력미리보기를 한후에 발생 onafterupdate 데이터영역 개체에서 발생하는 이벤트로 데이터 소스 오브젝트내의 데이터가 업데이트 되었을 때 발생(데이터 개체부분 참조) onbeforeactivate 개체가 활성화 상태로 되기 바로 직전에 발생 (onactivate를 참고) onbeforecopy 선택 영역이 시스템의 클립보드로 복사되기 바로 직전에 발생 onbeforecut 선택 영역이 지워지기 바로 .. 2014. 4. 11. 잘못된 PHP 코딩 스타일 1. 문자 쿼테이션 - 잘못된 코딩 $ret = $arr[var1]; - 올바른 코딩 $ret = $arr['var1']; 배열의 키 문자는 반드시 싱글 쿼테이션으로 처리해 주어야 한다. 쿼테이션이 들어가 있지 않은 변수인 경우 Notice 에러가 발생한다. 또한 싱글 쿼테이션과 더블 쿼테이션의 차이점을 명확히 알고 사용하는 것도 중요하다. 일반 문자열의 경우에는 싱글 쿼테이션을 사용하는 것이 바람직하다. 2. 변수 초기화 - 잘못된 코딩 $str .= "abc"; - 올바른 코딩 $str = ""; $str .= "abc"; 변수를 초기화 하지 않은 상태에서 변수를 마구 사용하는 경우가 허다하다. 이는 올바른 코딩 스타일이 아니다. 첫번째 구문은 초기화 없이 $str 이 추가되므로 Notice 에러가 .. 2014. 4. 8. PHP의 소켓 함수 PHP의 소켓 함수 몇가지를 알아보고 넘어 가도록 하자. PHP의 소켓 함수는 C sys/socket.h 에 정의 되어있는 함수들과 매우 유사하다. 참고 하도록 하자. socket_create ( int domain, int type, int protocol ) 소켓의 연결 자원을 생성 합니다. 소켓 함수를 사용할때 기본으로 쓰입니다. domain 파라메터에는 AF_UNIX 또는 AF_INET 으로 유닉스 도메인 소켓 또는 인터넷 소켓으로 지정합니다. type 파라메터에는 STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW, SOCK_RDM, or SOCK_PACKET 등의 소켓의 종류가 설정 됩니다. protocol 파라메터에는 TCP또는 UDP 설정(SOL_UDP or S.. 2014. 4. 8. PHP에서 암호화 encrypt 복호화 decrypt 해서 값을 넘기기 php에서 mcrypt_encrypt 함수를 이용할 수 있다면 손쉽게 적용할 수 있겠지만 함수를 이용할 수 없다면 mcrypt 관련 소스를 설치를 해야하며 php.ini 적용도 해야하는 번거러움이 있다. 그래서 php 스크립트를 이용해 함수를 이용해서 바로 이용가능 하도록 합니다. 먼저 암호화 encrypt 함수 : ### PHP암호화 함수 function encrypt($data,$k) { $encrypt_these_chars = "1234567890ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz.,/?!$@^*()_+-=:;~{}"; $t = $data; $result2; $ki; $ti; $keylength = strlen($k); $textlength.. 2014. 4. 7. php 환경변수정리 $_SERVER["SERVER_PROTOCOL"]; // 프로토콜을 읽어온다 $_SERVER["SERVER_NAME"]; // 현재접속중 인 서버 이름을 읽어 온다(도메인) $_SERVER["SERVER_PORT"]; // 웹 서버가 사용하는 포트를 읽어온다. $_SERVER["REQUEST_URI"]; // 현재 위치한 웹의 주소를 읽어온다. $_SERVER["REQUEST_METHOD"]; // 전송방식을 읽는다(post,get) $_SERVER_ADDR; // 현재 접속중인 웹서버의 IP주소를 담고있다. $_REMOTE_ADDR; // 사용자의 IP주소를 담고있다. $_DOCUMENT_ROOT; // 웹페이지 문서가 저장되어 있는 루트 디렉토리를 담고있다 $_SERVER["SERVER_SOFTWAR.. 2014. 4. 7. mySQL테이블의 설계 지금까지 mySQL계정을 만들고 접속하여 DB를 사용할수 있도록 DB를 select하는것까지 알아봤습니다... 그럼 이제 직접적으로 테이블을 만들고 사용을 해야겠죠... 일단 테이블의 설계에 대해 알아볼까요? DB에는 정규화라는게 있습니다. 사실 DB얘기를 깊게 하자면 @_@넘복잡하고...제가 아는것도 한계가 있기때문에 간단하게 요점만....어려운 용어 없이 얘기하도록 하겠습니다. 정규화의 예제를 한번 볼까요? 아래와 같은 테이블이 있습니다..... (수강신청테이블) 이름 주소 과목 ---- ----- ----- 김씨 서울 과학 김씨 서울 수학 이씨 인천 과학 이씨 인천 수학 이씨 인천 국어 박씨 서울 국어 위와 같은 수강신청 테이블이 있다고 볼까요.... 보아하니......누가 어디살고 어떤과목을 신청.. 2014. 4. 6. mySQL접속하기 자 우리가 만들었던 mySQL계정은..... 아이디:navy 패스워드:1234 디비이름:navy 위와 같습니다.....그쵸? 우선...apache와 mysql을 시동시키시고.... 아래와 같은 문장을 php문서에 담아서 실행해 볼까요~ 파일명은 connect.php로 하겠습니다...(connect..접속! -_-) 위 소스를 실행했을때 아무런 에러표시가 없다면...이전에 유저와 디비 생성이 정상적으로 되었고....지금 그 디비로 아무 문제 없이 접속되었다는 것입니다.... 뭔가 -_-이상하다싶으면 처음부터 다시 해보시고요;;; 소.. 2014. 4. 6. mySQL사용하기 미리 말씀드렸지만 디비라는건 간단히 테이블입니다. 자료들을 일반 문서 처럼 그냥 마구잡이로 집어 넣는게 아니라... 테이블을 만들어서.....잘 정리해서 넣는다는거죠....... 함 볼까요? 어느 식당의 메뉴가 아래와 같이 있답니다... 비빔밥은 3000원이고 볶음밥은 3500원이고 된장찌개는 2500원인데다가 백반은 2000원입니다. 자.....위와 같이 어느 식당의 메뉴가 있는데... 돈이 2500원밖에 없습니다.... -_-;좀 불쌍하지만.....그렇다면 2500원이하의 메뉴를 먹어야 겠죠 그럼 2500원 이하인 메뉴를 찾아 봅시다....... 된장찌개,백반 그렇죠? 쉽습니다.....-_-; 그럼 이렇게 가정을 해보죠..... 그 식당에 메뉴가 100개가 있다고 해볼까요? @_@찾아보세요;;; 저런.. 2014. 4. 6. mySQL이란... MYSQL은 뭘까요? 보통 SQL이란단어가 들어가면 DB(date base)를 말합니다. 데이터베이스라는것은 일련의 데이터들을 보기좋게...또는 쓰기좋게 잘 정리 해놓은 거죠... 간단하게 말하면 표(table)를 생각하시면 됩니다. 우리가 뭔가를 보기 좋게 정리 할때 표를 만들어 놓고 보죠...^^그쵸? 앞서 우리가 파일에 저장하는 방법을 배워보긴 했는데... 그걸 사용하기 쉽게 정리하기란 쉽지가 않습니다. 그리고 파일을 여닫는 속도 또한 장담할수가 없죠.... 또 검색이라든지 조건에 맞는 항목을 가져오는 방법에 있어서도 파일만을 이용하는 저장방법에는 한계가 따른다는거죠... 자....그래서 DB를 사용해야 한다는말씀인것인것입니다. @_@ 신문에서나 지하철에서 oracle광고를 많이 보셨죠? 보통 뭐 .. 2014. 4. 6. 파일의 입출력 [출력하기] 자 이제.....파일에 저장된 정보를 꺼내와볼까요? 꺼내오는건 더 간단합니다...(+_+아 떨려라..) $data=file("파일명"); file()이라는 함수는 해당파일을 꺼내와서 배열로 만들어 버립니다. 결국 $data라는 배열이 생기는 거겠죠? 이 배열은 제일 첫줄 부터 차례로 배열 0으로 저장됩니다. 두번째 줄은 1이 되겠죠... $data[0],$data[1]...이런식으로 말이죠... 이전에 저장했던 IP들을 꺼내와 볼까요? $data=file("test/data.txt"); 이렇게 하면 $data[0]에는 첫번째 IP가 들어가고.. $data[1]에는 두번째 IP가 들어가겠죠... 엇...그럼 이 문서에 저장된 모든 IP를 화면에 꺼내려면 어떻게 해야 할까요? +_+ for..... -_,-.. 2014. 4. 5. 파일의 입출력 [기록하기] 자.....그럼 /htdocs에다가 폴더를 하나 만드세요... 그리고 퍼미션을...............-_-엇;;; 그런데 퍼미션을 어떻게 조정하나요...-_-a;;; 윈도우에서는 미리 말씀드렸듯이 퍼미션을 조정할 필요가 없습니다. 그리고 리눅스나 유닉스에서는 chmod라는 명령어로 조정을 하죠... 그래서 그걸 조정하려면 텔넷으로 접속을 해야 하는데... FTP프로그램에서....해당 파일이나 폴더를 오른쪽 클릭해보면... chmod라는 명령어가 있습니다...때론 unix 어쩌구 라고도 되어있더군요.. 암튼 대부분의 FTP프로그램에서는 퍼미션을 바꿀수 있는 메뉴가 있습니다. ^^/ 어쨌든....다른 서버에 올리셨다면 퍼미션을 777로 조정을 해줍시다. test라는 폴더를 만들었다고 하죠~.....(-_.. 2014. 4. 5. 파일의 입출력 [퍼미션?] 파일입출력에 대해 간단하게 알아보겠습니다. CGI라는것 있죠... 풀어쓰면...Common Gateway Interface입니다... 뜻은?-_-? 해석해보세요;;; 뭔진 몰라도 대충....사용자(클라이언트)와 서버가 정보를 주고 받을수 있도록 해주는 interface...즉 연결통로 같은거겠죠... 암튼 그런것들의 총칭이 CGI..이라는 것입니다. 일반적으로 CGI와 PHP를 구분해 놓는 경우가 많은데... 제 개인적인 의견으로는 CGI>PHP라는게 되겠네요... 결국 PHP도 CGI의 일종이다 이겁니다. 이런 CGI는 기본적으로 사용자와 정보를 주고 받을수 있는 형태이어야 하는데...일반적인 HTML은 그 기능을 하지 못하죠.. 서버에서 클라이언트로 단방향 전송밖에 이루어지지 못합니다. 하지만 CGI.. 2014. 4. 5. 이전 1 ··· 108 109 110 111 112 113 114 ··· 117 다음 반응형