목록Code/WEB (10)
Data Analysis for Investment & Control
파일을 다루는 PHP를 작성하는 것은 꽤 직관적입니다. 파일을 업로드하게되면, 웹 서버의 기본 임시 디렉토리에 저장이 됩니다. 스크립트가 끝날 때까지 파일을 옮기거나 이름을 바꿔주지 않으면 파일은 지워지게 됩니다. PHP 스크립트에서 다루는 데이터는 수퍼글로벌 배열인 $_FILES에 저장되어 있습니다. register_globals가 활성화되어 있으면 변수 이름을 통해 바로 정보를 얻을 수 있습니다. 그렇지만 파일 업로드 부분에서는 register_globals를 비활성화 하는 것이 중요하므로 수퍼글로벌 배열을 사용해야 합니다. HTML 폼에서 태그의 이름으로 $_FILES에 각 요소들이 저장되어 있습니다. userfile이란 이름을 가졌었다면 배열은 다음과 같은 내용을 가집니다. ■ $_FILES['u..
serialize는 값의 저장 표현을 생성합니다. 이는 PHP 값을 저장하거나 전달할 때 자료형이나 구조를 잃어버리지 않게 합니다. 일렬화된 문자열을 다시 PHP 변수로 만들려면, unserialize()를 사용합니다. string serialize ( mixed $value ) value : 일렬화할 값. serialize()는 resource 형을 제외한 모든 형을 다룹니다. 자기 자신을 참조하는 배열을 serialize() 할 수도 있습니다. 배열/객체 안의 순환 참조도 일렬화하여 저장됩니다. 그 외의 다른 참조는 읽어버립니다. 객체를 일렬화할 때, 일렬화 전에 _sleep 멤버 함수를 호출합니다. 이로써 일렬화하기 전에 객체를 마지막으로 정리할 수 있습니다. 마찬가지로 unserialize()을 ..
파일을 업로드 할 때 사용하는 함수입니다. 정의는 아래와 같습니다. bool move_uploaded_file ( string $filename , string $destination ) Parameters filename : The filename of the uploaded file. destination : The destination of the moved file. Return Values If filename is not a valid upload file, then no action will occur, and move_uploaded_file() will return FALSE. If filename is a valid upload file, but cannot be moved for so..
속성 중에서 enctype="multipart/form-data"라고 하는 속성이 있어서 찾아보게 되었습니다. 3가지의 경우가 있더군요. 1. application/x-www-form-urlencoded 디폴트 설정입니다. enctype을 따로 설정해 주지 않는다면 form-data는 이 방식으로 인코딩되어 전송합니다. key와 value의 형태로 form-data를 전송합니다. 2. multipart/form-data PHP에서 파일을 넘겨서 파일의 name, size 등의 속성을 사용하고 copy(), unlink() 등의 함수를 이용하기 위해서는 이 설정으로 사용해야 합니다. 따라서 파일 업로드의 경우 이 형태로 인코딩해야 합니다. form-data를 부분으로 나누어 전송합니다. 3. text/pl..
현재 운영중인 웹사이트의 새로운 버전 개발을 위해 땜쟁이가 웹프로그래밍이라는 새로운 영역을 하나 둘씩 배워가면서 어떻게 좀 더 스마트하고 유니크한 에디터를 만들수 있을까 고민했었는데, 네이버와 다음에서 공개하고 있는 에디터 오픈소스로 부담을 좀 덜 수 있을 듯 합니다. (에디터 만들라고 게시판 만들기 책 산거는 어쩌냐고.. 내용도 허접하드만...) 둘다 WYSIWYGS기반의 오픈 웹 에디터로 확장에 유연하도록 설계되어 있고, 물론 오픈소스이기 때문에 저작권료도 없고, 자유롭게 수정하여 사용이 가능하니 제 입맛에 맞게 수정해서 사용해야 겠습니다. 네이버와 다음에서는 각각 오픈소스 에디터에 대한 웹사이트를 운영하고 있으며, 여기서 에디터 소스 받으실 수 있고, 포럼 활동을 할 수도 있습니다. 네이버 개발자 ..
DOM(Document Object Model)이란 용어 그대로 문서의 내용을 객체화 시켜서 핸들링하는 방법이라고 생각하면 되겠다. DOM은 XML을 기반으로 탄생된 표준이라고 한다. 아래 링크를 통해 DOM에 대한 배경지식을 얻을 수 있다. https://developer.mozilla.org/ko/Gecko_DOM_Reference
Ajax.Request를 통해서 넘어온 XML 데이터가 제대로 넘어왔는지 확인을 하기 위해서 responseXML을 사용합니다. 변수 MyRequest가 XML 코드를 넘겨 받은 변수라면, var xmlDoc = MyRequest.responseXML; alert(xmlDoc.xml); 위의 코드를 통해서 정상적으로 코드가 나타나면 값이 제대로 넘어온 것이고, 아니라면 어딘가 잘못된 것이겠이죠. 이를 통해 넘겨 받은 코드는 DOM(Document Object Model) 방식으로 접근할 수 있습니다. XML 문서는 노드 형태의 구조를 사용하므로, var xmlDoc = MyRequest.responseXML;로 코드를 넘겨 받았다면, var item = MyRequest.responseXML.getEle..
은 문자열이나 인라인 레벨 엘리먼트(inline-level element)를 위한 것으로 나 이 블록 엘리먼트들을 다루고 있는 것과 차이가 있습니다. 만약, 테이블과 같은 구조의 블록이 아니라 이름이나, 숫자 등의 비교적 작은 엘리먼트들에 대한 레이아웃을 핸들링 하고자 한다면 을 써줍시다. 1,000 id 활용 태그의 id 속성을 활용하여 데이터를 뿌리는 기능으로 사용할 수도 있습니다. function ondisplayData() { document.getElementById("아이디").innerHTML = 데이터; } window.onload = function() { ondisplayData(); } // '데이터'로 바뀐다! 예를들어, 현재 DB에 등록된 회원수가 얼마인지 웹페이지에 표시하고 싶다..
Ajax 프로그래밍 하는데, "Ajax 가 정의되지 않았습니다"란 메시지에 '이거 따로 정의해줘야 하는 거야??' 라고 생각하고 있었는데, 검색 중에 prototype.js의 존재를 발견... 역시 무지하면 몸이 고생하는 군요. /* Prototype JavaScript framework, version 1.6.0.3 * (c) 2005-2008 Sam Stephenson * * Prototype is freely distributable under the terms of an MIT-style license. * For details, see the Prototype web site: http://www.prototypejs.org/ * *-----------------------------------..
A basic example var url = '/proxy?url=' + encodeURIComponent('http://www.google.com/search?q=Prototype'); // notice the use of a proxy to circumvent the Same Origin Policy. new Ajax.Request(url, { method: 'get', onSuccess: function(transport) { var notice = $('notice'); if (transport.responseText.match(/href="http:\/\/prototypejs.org/)) notice.update('Yeah! You are in the Top 10!').setStyle({ ba..