PHP 배열 그리고 XML, JSON

Web Tech/PHP Ajax 개발 2011.08.21 20:10

서론

많은 사람들이 AJAX를 하면 어렵게 생각하고 접근을 어려워 하는것 같아서 정리를 시작해봅니다.

기본적으로 AJAX는 XML로 데이터를 받는 형식이고 파싱하여 화면에 뿌려주는 방법을 선택을 합니다.

뭐 당연한것이겠지만요^^

PHP에서는 AJAX나 그외 비동기로 통신할수 있도록 클래스나 함수를 제공하고 있습니다.

XML로는 SimpleXML이 유명하고 JSON에서는 json_decode, json_encode등 이 상당히 널리 쓰이고 있습니다.


json이나 xml을 다루기 전에 php에 배열 구조에 대하여 알필요가 있습니다.


AJAX
AJAX 란? Asynchronous JavaScript and XML의 약자로써 해석을 하면 비동기 자바스크립트와 XML이라는 뜻 정도이다.
비동기로 화면에 있는 내용을 바꾸기 위해서 꼭 XML을 사용하지 않아도 되지만 JSON 보다 아직까지는 호환성이 좋은듯...(그놈의 익스가 문제!)


배열

PHP는 기본적으로 Key, Value로 데이터를 다루는 연관 배열을 이용하며 순차 배열처럼도 사용할수 있도록 해둔것입니다.

때문에 기본적으로 배열은 아래처럼 선언을 합니다.

$array = array(keyName=>"value", keyName=>"value"); 

(5.4 부터는 $array = [1,2,3,4]; 지원. 추가 내용 http://text.by.shinv.ee/post/8007951461/php-5-4)

 


http://php.net/manual/en/language.types.array.php


물론 아래처럼도 가능합니다

array[] = value1; 

array[] = value2;

※ 이 동작은 array_push동일합니다.


기본적으로 알고 있기로는 연관배엘이 순차배열처럼 다루기는 힘들고 그 반대로 또한 힘든데 php는 기본컨셉이 연관 배열에서 순차 배열을 다루는것이라 뭐 어렵지 않게 가능합니다.


배열을 다루기 위해  제어문중 for, foreach, while문등 기타 제어문들이 존재 하며 배열을 스택 형태로 다루는 array_push, array_pop도 기본적으로 제공 하고 있으며 큐형태로 다루기위한  array_shift, array_unshift등도 존재합니다.


배열을 다루기 위한 함수 목록은 아래링크에서 다시 확인하시면 됩니다.

http://kr2.php.net/manual/en/ref.array.php


영어로 작성되엉 씨는 레퍼런스지만 어렵지 않은 단어들을 사용하였으므로 걱정 하지 않으셔도 될듯 합니다.

자 이제 본격적으로 비동기로 페이지 자료를 다루는 방법에 대하여 설명 하도록 하겠습니다.

본 글에서서는 jquery와 php5, mysql5를 기준으로 설명이 되었으며 그외 환경에 대해서는 신경끄셔도 됩니다.


XML
XML? 이라고 하면 겁먹을 필요 전혀 없는!
http://en.wikipedia.org/wiki/XML
그냥 쉽게 html이랑 비슷하게 짜여진 텍스트 파일이라고 생각하면 이해가 빠르다.
그런데 왜 XML에 관련된 라이브라러리들이 이렇게 복잡한건지는... 그냥 텍스트를 쏴줘도 되는데...

--- 계속 편집중입니다.
 

'Web Tech > PHP Ajax 개발' 카테고리의 다른 글

PHP 배열 그리고 XML, JSON  (0) 2011.08.21
posted by ned3y2k

모바일(아이폰) 웹 브라우저 텍스트 크기 자동 조정 문제.

Web Tech/CSS & HTML 2011.08.17 23:17
텍스트를 원하를 크기데로 찍을수 없을때 사용하면 된다.
출처: 페이스북 지인.

http://developer.apple.com/library/iOS/#documentation/AppleApplications/Reference/SafariWebContent/AdjustingtheTextSize/AdjustingtheTextSize.html 
posted by ned3y2k

PHPUnitFramework 를 이용한 TDD

Web Tech/PHP 2011.06.13 13:30
뭔가 자세하게 설명된 곳이다.
http://www.phpunit.de/manual/3.6/en/index.html
posted by ned3y2k

플래쉬 소스

Web Tech 2011.06.07 18:05
http://two-man.co.kr/
위 사이트에서 구할수 있다. 

생각 보다 많고 질좋은 디자인들이 꽤나 있다. 

'Web Tech' 카테고리의 다른 글

MySQL 5에서 4로 다운그레이 할때  (0) 2012.11.27
html5 form element kit  (0) 2012.01.10
C#, VB.net로 만든 코드를 웹으로~  (0) 2011.10.07
플래쉬 소스  (0) 2011.06.07
posted by ned3y2k

페이지 재갱신 또는 빠져나가기전 확인 메시지 출력

Web Tech/Javascript 2011.02.01 06:55

var allowConfirm = true;

window.onbeforeunload = confirmExit;


var msg = "이 동작은 본 사이트에서 허용하지 않는 동작입니다.\n계속 하시면 정상적인 작동이 되지 않을수 있습니다.";

function confirmExit() {

if (allowConfirm) {

return msg;

} else {

allowConfirm = true;

}

}


여러부분으로 응용할수 있는 코드가 아닌가 한다^^

posted by ned3y2k

PHP5 익명 변수, 익명 인스턴스

Web Tech/PHP 2011.01.29 03:33
PHP5를 쓰다 보니 정말 놀라운 언어라고 생각이 든다.
아직 객체 지향 관점에서 보면 당연히 JSP나 ASP.Net 보다는 부족하지만 이러한 단점들을 충분히 매꿀수 있는 언어가 아닌가 한다.

 익명 인스턴스 사용 방법을 알아보자

<?php
$varName = "Country";
${$varName} = "Korea";

$className = "Earth";
${$classWord} = new Planet();
?>

위 처럼 코딩하면 아래와 같은 결과를 얻을수 있다
<?php
$Country = "Korea";
$Earth = new Planet();
?>

정말 멋진 기능이 아닐수 없다^^
자만 Zend Studio나 Eclipes 같은 툴에서 정상적으로 구분 할수 없거나 자동완성 기능에 좀 제약이 있다는 부분이 있다.
posted by ned3y2k

Prototype 이용하여 간단하게 브라우저 정보 판별

Web Tech/Javascript 2010.12.26 06:01

Prototype.Browser.X로 판별이 가능하다.

X에는 Gecko, IE, MobileSafari, Opera, WebKit등이 있다.


해당 하는 브라우저로 True가 리턴된다.

Gecko: Firefox

WebKit: Apple Safari, Google Chrome

IE: Internet Explorer들

MobileSafari: 아이폰 내장 브라우저

posted by ned3y2k

Dynamic Table (동적 테이블) ROW(열) 삽입 크로스브라우징

Web Tech/PHP 2010.12.26 05:54
동적 테이블을 만드는중 다른 쪽은 전부 정상적으로 작동하는데 열 삽입이 Internet Explorer(IE) 계열과 타 브라우저들이 다르게 들어가는것을 알수 있다.

IE와 타계열 브라우저(크롬, 사파리, 파폭등...)들을 비교하였을때 행, 열이 반대로 삽입 되는것을 알수 있다.
이 경우에 필요한 내용은 브라우저를 판별하는 코드와 행, 열이 반대로 들어가는 내용을 처리하는 내용 두가지만 있으면 간단히 해결된다.

물론 insertCell(-1)이나, insertRow(-1)로 최하단으로 가게 하거나 0을 넣어 최상단으로 가게 하는 방법으로 해결될수 있다.
이방법은 index 값을 -1이나 0을 주지 않는 특별한 상황에서 응용을 할수 있는 방법이라 보면 될거 같다.

언제나 느끼는거지만 이런 블로그 하나 쓰는것이 너무 오래걸리는듯-_-;

예제 파일은 다음과 같다.
posted by ned3y2k