'PHP'에 해당되는 글 21건

PHP 배열 정리

PHP 2012. 2. 3. 11:40
1. 일반 배열

 array()


PHP에서 배열은 array() 함수를 통해 저장할 수 있습니다. 배열이 저장된 배열변수는 foreach나 []안의 index를 통하여 접근이 가능합니다.

array()함수는 내부에 array()함수가 중복해서 존재하는 경우 다차원배열로 처리하게 됩니다. 예를 들어 2차원 배열을 사용하고자 한다면


이와 같이 array()내부에 다시 array()를 작성하여 요소를 배열하고 [][]내부에 index를 지정해 해당 차원을 배열로 접근하면 됩니다.

 array_diff()


array_diff()함수는 첫번째 배열과 두번째 배열을 비교하여 두 배열이 다른 부분을 첫번째 배열의 기준으로 반환하는 함수입니다.


 sort()

배열을 순차적으로 정렬하는 함수입니다.


sort() 함수는 반환값이 아닌 함수 내부에서 해당 배열을 재정렬합니다.

 natsort()

sort()는 한가지 문제가 있습니다. 다음 예제에서


AAA1, AAA2, AAA11 처럼 뒤의 정수크기만큼 순차적으로 정렬하기 위해 sort 함수를 사용하였습니다.


정렬 결과는 AAA1, AAA11 식으로 나열되었는데 sort()함수로는 원하는 결과를 얻을 수 없습니다. php는 이를 대체하기 위해 natsort()라는 함수를 마련하였습니다.


함수의 사용방법은 완전히 동일하지만 결과는 달라집니다.

 var_dump()

key가 있고 값이 있는 배열이 복잡하게 구현된 경우 한눈에 모든 배열을 확인하고 싶을 때가 있습니다. 이런 경우 for나 foreach대신 var_dump()함수를 사용하게 되면 배열의 모든 값을 확인해 볼 수 있습니다.



 unset()

배열을 삭제하는 함수입니다.


배열에서 삭제하길 원하는 index나 키를 지정하면 해당 배열요소는 배열에서 삭제됩니다.


2. 연상 배열

일반배열은 각 요소의 값을 가져오기 위해 []안에 index로 구분해야 했습니다. 하지만 연상배열은 index로 숫자를 사용하는 대신 문자를 사용하여 각 요소의 값을 읽어올 수 있도록 합니다.


연상배열은 "Key" => "Array" 형태로 사용하며 앞의 문자(혹은 문자열)가 Key가 되고 뒤의 내용이 실제 배열에 사용될 Data가 됩니다. 이렇게 배열을 작성하고 나면 Key로 정한 문자열을 사용하는 것만으로 배열을 내용을 가져올 수 있게 됩니다.

물론 연상배열에도 다차원 배열사용이 가능합니다.


 is_array()

특정배열이 연상배열인지를 확인하는 함수 입니다.


결과는 true인데 만약 $arry가 일반 배열이라면 결과는 false가 됩니다.

이 함수는 특정 값이 배열에 있는가를 판단할 수도 있는데 첫번째 parameter에 배열을 두번째 parameter에 값을 사용하여 함수를 호출하면 배열안에 값이 존재할때 true를 없을때 false를 반환하게 됩니다.

 asort()

연상배열에서 값을 기준으로 정렬하는 함수입니다.

▶ array(3) { ["C"]=> string(3) "AAA" ["A"]=> string(3) "BBB" ["B"]=> string(3) "CCC" }

 arsort()

연상배열에서 값을 기준으로 역순하는 함수입니다.

▶ array(3) { ["B"]=> string(3) "CCC" ["A"]=> string(3) "BBB" ["C"]=> string(3) "AAA" }

 ksort()

연상배열에서 Key값을 기준으로 정렬하는 함수입니다.

▶ array(3) { ["A"]=> string(3) "BBB" ["B"]=> string(3) "CCC" ["C"]=> string(3) "AAA" }

 krsort()

연상배열에서 Key값을 기준으로 역순하는 함수입니다.

▶ array(3) { ["C"]=> string(3) "AAA" ["B"]=> string(3) "CCC" ["A"]=> string(3) "BBB" }


http://lab.cliel.com/494 펌

'PHP' 카테고리의 다른 글

PHP file 정리  (0) 2012.03.30
PHP DATE 정리~  (0) 2012.02.08
PHP JSON 처리  (0) 2012.02.02
PHP $_SERVER 정의  (0) 2012.01.31
PHP 문자열 함수  (0) 2012.01.17
블로그 이미지

스마트전

,

PHP JSON 처리

PHP 2012. 2. 2. 10:42

PHP버전 : 5.2.1 이상을 사용하여야 기본으로 내장되어 있다.*

[개념]

 JSON(JavaS-ript Oject Notation)은 인터넷을 통해 응용프로그램간 데이터를 주고 받는 규칙 즉 데이터 포맷을 일컫는다. 그리고 JSON이 비록 자바스크립트 구문형식을 따르기는 하지만 그 자체로 하나의 독립적인 체계로서 특정 언어나 플랫폼에 종속되지 않으며 C#, Java, ASP, PHP, C, C++등의 다양한 언어에서 JSON 포맷을 위한 파서들이 제공되고 있다.

 

[내장함수]

PHP 버전이 5.2.1 이상이라면 PHP에도 JSON이 기본으로 내장되어 있다. 이 경우에 사용하는 함수는 세 가지다.

- json_decode    : JSON 문자열을 PHP 배열로 바꾼다.

- json_encode    : PHP 배열을 JSON 문자열로 바꾼다.

- json_last_error :  마지막으로 일어난 에러를 반환한다.

 

[PHP JSON 한글 처리 예제]

urlencode(), urldecode() 함수로 처리하는 방법

 

print?

<?php
$val = array(urlencode("에혀~"), "1", 23);
$output = json_encode($val);
echo urldecode($output)."\n";
//결과
//["에혀~","1",23]
?>

 

[예제소스(다운 받았을 경우)]

JSON.php 파일에는 Services_JSON 클래스가 있다. 다음 예제처럼 사용하면 된다.

require 'JSON.php';
 
// create a new instance of Services_JSON
$json = new Services_JSON();
 
// convert a complexe value to JSON notation, and send it to the browser
$value = array('foo', 'bar', array(1, 2, 'baz'), array(3, array(4)));
$output = $json->encode($value);
 
print($output);
// prints: ["foo","bar",[1,2,"baz"],[3,[4]]]
 
// accept incoming POST data, assumed to be in JSON notation
$input = file_get_contents('php://input', 1000000);
$value = $json->decode($input);
 

'PHP' 카테고리의 다른 글

PHP DATE 정리~  (0) 2012.02.08
PHP 배열 정리  (0) 2012.02.03
PHP $_SERVER 정의  (0) 2012.01.31
PHP 문자열 함수  (0) 2012.01.17
date 함수 사용법  (0) 2012.01.13
블로그 이미지

스마트전

,

PHP $_SERVER 정의

PHP 2012. 1. 31. 11:17

$_SERVER['DOCUMENT_ROOT'] = 현재 사이트가 위치한 서버상의 위치 => /webapp/include


$_SERVER['HTTP_ACCEPT_ENCODING'] = 인코딩 받식 => gzip, deflate


$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 언어 => ko


$_SERVER['HTTP_USER_AGENT'] = 사이트 접속한 사용자 환경 => Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705


$_SERVER['REMOTE_ADDR'] = 사이트 접속한 사용자 IP => xxx.xxx.xxx.xxx

 

$_SERVER['HTTP_REFERER'] = 현제 페이지로 오기전의 페이지주소값 => http://www.test.net/index.php?user=??? (A태그나 form으로 전송시 값이 넘어옴. onclick으로 전송시 값이 넘어오지 않음)


$_SERVER['SCRIPT_FILENAME'] = 실행되고 있는 위치와 파일명 => webapp/include/index.php


$_SERVER['SERVER_NAME'] = 사이트 도메인 => www.test.com (버추얼 호스트에 지정한 도메인)

 

$_SERVER['HTTP_HOST'] = 사이트 도메인 => www.test.com (접속할 때 사용한 도메인)


$_SERVER['SERVER_PORT'] = 사이트가 사용하는 포트 => 80


$_SERVER['SERVER_SOFTWARE'] = 서버의 소프트웨어 환경 => Apache/1.3.23 (Unix) PHP/4.1.2 mod_fastcgi/2.2.10 mod_throttle/3.1.2 mod_ssl/2.8.6 OpenSSL/0.9.6c


$_SERVER['GATEWAY_INTERFACE'] = cGI 정보 => CGI/1.1


$_SERVER['SERVER_PROTOCOL'] = 사용된 서버 프로토콜 => HTTP/1.1


$_SERVER['REQUEST_URI'] = 현재페이지의 주소에서 도메인 제외 =>  /index.php?user=???&name=???


$_SERVER['PHP_SELF'] = 현재페이지의 주소에서 도메인과 넘겨지는 값 제외 = /default/index.php

      *파일명만 가져올때 : basename($_SERVER['PHP_SELF']);


$_SERVER['APPL_PHYSICAL_PATH'] = 현재페이지의 실제 파일 주소 => D:\webapp/

 

$_SERVER['QUERY_STRING'] = get방식의 파일명 뒤에 붙어서 넘어오는 값 => ?user=???&name=??? (반드시get방식으로 넘겨야됨)


'PHP' 카테고리의 다른 글

PHP DATE 정리~  (0) 2012.02.08
PHP 배열 정리  (0) 2012.02.03
PHP JSON 처리  (0) 2012.02.02
PHP 문자열 함수  (0) 2012.01.17
date 함수 사용법  (0) 2012.01.13
블로그 이미지

스마트전

,

PHP 문자열 함수

PHP 2012. 1. 17. 11:00

PHP 문자열 함수

 

 ● 문자열 다듬기

 - trim(), ltrim(), chop()에서 지우는 공백은 스페이스, '\n'(줄바꿈), '\t'(가로 탭), '\v',

 ○ trim();

      - 문자열의 처음과 끝에 있는 공백을 지운다.

 ○ ltrim();

      - 문자열의 처음에 있는 공백을 지운다.

 ○ chop();

      - 문자열의 끝에 있는 공백을 지운다.

 

 ● 문자열 정돈

 ○ nl2br();

      - 문자열중 줄바꿈문자(\n)를 XHTML에서의 줄바꾸기인 <br/>태그로 바꾸어 준다.(4.0.5 이전의 HTML에서는 <br>태그)

 

 ● 문자열의 대소문자 관련 함수

 ○ strtoupper();

      - 모든 알파벳을 대문자로

 ○ strtolower();

      - 모든 알파벳을 소문자로

 ○ ucfirst();

      - 문장의 처음이 알파벳이면 그것만 대문자로

 ○ ucword();

      - 각 단어의 첫 알파벳을 대문자로

 

 ● 문자열 나누고 합치기

 ○ explode();

      - 지정 문자를 기준으로 문자열의 전, 후를 나누어 배열로 저장한다.

      ex) $email = 'email@email.com';     $email_array = explode('@', $email);

           $email_array[0] → 'email';     $email_array[1] → 'email.com';

 ○ implode();, join();

      - 지정 문자를 기준으로 배열을 전, 후에 배치하여 문자열을 합친다.

      ex) $new_email = implode('@', email_array);     $new_email → 'email@email.com';

 

 ○ strtok();

      -

 ○ substr();

      - 문자열 중 특정 시작부분과 끝부분 사이의 문자열을 추출하는데 사용한다.

      ex) $test = 'PHP Webprogramming';

           $test1 = substr($test, 1);     $test2 = substr($test, -1);     $test3 = substr($test, 5, 8);     $test4 = substr($test, 4, -2);

           $test1 → 'HP Webprogramming'(앞에서 1번 부터)

           $test2 → 'g'(뒤에서 1번 부터)

           $test3 → 'ebprogra'(앞에서 5번부터 8개)

           $test4 → 'Webprogrammi'(앞에서 4번부터 뒤에서 2번까지)

 

 ● 문자열 비교하기

 ○ strcmp();

      - C언어에서의 함수와 같다. 앞의 문자열을 기준으로 같으면 0을, 우선순위가 높으면 -1을, 반대의 경우에는 1을 리턴한다.

      - 단, 대문자와 소문자의 경우 소문자가 우선순위가 더 높다.(ASCII코드의 대소관계를 생각하면 쉽다.)

 ○ strcasecmp();

      - C언어에서의 stricmp()와 같다. 두 문자열을 비교하는 것은 strcmp()와 같지만 대소문자를 구분하지 않는다.

 ○ strnatcmp(); & strnatcasecmp();

      - 이 두 함수는 문자열을 좀더 자연스러운 기준에서 비교한다.(strnatcmp("12","2")의 결과는 1이다.)

      - 이 두 함수의 차이는 대소문자의 구분여부이다.(이 두 함수의 차이는 case의 유무여부이다.)

 

 ● 문자열의 길이 확인하기

 ○ strlen();

      - C언어에서의 함수와 같다. 문자열의 길이를 정수값으로 리턴해준다.

 

 ● 문자열 안에서 문자열 찾기

 ○ strstr();

      - 문자열 안에서 특정 문자열과 일치하는 부분이 있는지 찾아내는데 쓰이는 함수이다.

      - 일치하는 문자열이 있을 때는 해당 문자열이나 문자를 포함하여 이후 문자열을 리턴한다.

      - 일치하는 문자열이 없을 시에는 false를 리턴한다.

      ex) $str='Lion sleep to night';     $res = strstr($str, 'sleep');

           $res → 'sleep to night'

 ○ stristr();

      - strstr()과 같으나 대소문자를 구분하지 않는다.(ABC, Abc, aBC모두 같은 것으로 취급한다.)

 ○ strchr();

      - strstr()과 같으나 문자열대신 문자를 찾는다.

 ○ strrch();

      - strchr()과 같으나 뒤에서 부터 일치하는 문자를 찾기 때문에 마지막으로 나타난 문자부터 문자열을 출력한다.

 

 ● 문자열의 위치 찾아내기

 ○ strpos();

      - 문자열 내에서 일치하는 문자열이나 문자를 찾아 문자열 대신 해당 위치를 숫자로 알려준다.

      ex) $test = 'Ice cream';     $res1 = strpos($test, 'a');     $res2 = strpos($test, 'e');

           $res1 → 7(0부터 시작한다.)     $res2 = 2(일치하는 문자나 문자열이 많을 경우 가장 앞의 것을 기준으로 한다.)

      ex) $test = 'Ice cream';     $res = strpos($test, 'e', 4);

           $res = 6(앞에서부터 4번째에 있는 c부터 해당문자열의 위치를 찾는다.)

      ※ 이 예에서는 문자만 사용하였지만 문자열도 얼마든지 사용할 수 있다.

 ○ strrpos();

      - strpos와 비슷하나 찾는 문자가 가장 마지막에 보이는 곳의 위치를 리턴한다.

      ※ strrpos()는 strpos()와 달리 문자만 사용할 수 있다.

 ※ 두 함수 모두 만약 문자열에 needle(찾는 문자나 문자열)이 없으면 false를 리턴하는데 PHP에서는 false를 0과 같다고 보기 때문에

      위치 0을 리턴한것인지 false를 리턴한 것인지 구분할 수가 없다. 이 문제는 === 연산자를 사용하여 해결할 수 있다.

 ex) $res = strpos('Hello world', 'H');     //이 경우에는 가장 앞에 'H'가 있기 때문에 0을 리턴하지만 PHP는 false와 구분하지 못한다.

      if($res === false)

           echo 'Not found';

      else

           echo 'Found at position 0';

 

 ● 문자열 대체하기

 ○ str_replace();

      - 문자열에서 문자열를 찾아 대체문자열로 바꾸어 리턴한다.

      ex) $test = 'Change';     $res = str_replace('g', 'c', $test);

           $res → 'Chance'

 ○ substr_replace();

      - 특정 위치의 문자열을 대체문자열로 바꾸어 리턴한다.

      ex) $test = 'Vitamin A'; $res = substr_replace($test, 'C', -1);

           $res → 'vitamin C'

'PHP' 카테고리의 다른 글

PHP DATE 정리~  (0) 2012.02.08
PHP 배열 정리  (0) 2012.02.03
PHP JSON 처리  (0) 2012.02.02
PHP $_SERVER 정의  (0) 2012.01.31
date 함수 사용법  (0) 2012.01.13
블로그 이미지

스마트전

,

date 함수 사용법

PHP 2012. 1. 13. 14:24

1. checkdate

 bool checkdate(int month, int day, int year)

 주어진 날짜가 실제로 존재하는 날짜인지 검사하여 실제로 존재하면 TRUE를, 실제 존재하지 않는 날짜이면 FALSE를 반화


2. date

 string date(string format)

 날짜와 시간을 주어진 형식에 맞추어 문자열로 반환


- date() 함수에서 사용할 수 있는 형식 문자

 문자

설명 

예 

 d

일자를 두자리로 반환 

01 ~ 31 

 D

요일을 3글자로 반환 

Mon ~ Sun 

 j

 일자에  0이 붙지 않은 형식

1 ~ 31

 l

요일을 영문 단어로 반환 

Sunday ~ Saturday 

 w

요일을 숫자로 반환 

0(일) ~6(토) 

 z

해당 연도의 몇 번째 날인지 반환 

0 ~ 364 

 W

해당 연도의 몇 번째 주인지 반환 

0 ~ 54 

 F

월을 영문 단어로 반환 

January ~ December 

 m

월을 두 자리 숫자로 반환 

01 ~ 12 

 M

월을 영문 3글자로 반환 

Jan ~ Dec 

 t

해당 월의 날짜 수를 반환 

28 ~ 31 

 L

윤년인지 여부를 반환 

1: 윤년, 0:윤년 아님 

 Y

연도를 네 자리 수로 반환 

2011 

 a

오전과 오후를 영문 소문자로 반환

am, pm 

 g

시간을 24시간 형식으로 반환 

0~23 

 h

시간을 12시간 두 자리 형식으로 반환 

0~12 

 H

시간을 24시간 두 자리 형식으로 반환 

0~23 

 i

분을 두 자리 형식으로 반환 

00 ~ 59 

 s

 초를 두 자리로 반환

00 ~ 59 


3. getdate

 array getdate() , array getdate([int timestamp])

 날짜와 시간을 주어진 형식에 맞추어 문자열로 반환


4. microtime

 mixed microtime([bool get_as_float])

 현재의 시간을 유닉스 형식의 시간으로 100만분의 1초 단위까지 반환


5. mktime

 int mktime(int hour, int minute, int second, int month, int day, int year)

 지정한 날짜와 시간을 유닉스 형식의 시간으로 반환


6. time

 int time()

 현재의 날짜와 시간을 유닉스 형식의 시간으로 반환


- 예제



-
예제 출력



'PHP' 카테고리의 다른 글

PHP DATE 정리~  (0) 2012.02.08
PHP 배열 정리  (0) 2012.02.03
PHP JSON 처리  (0) 2012.02.02
PHP $_SERVER 정의  (0) 2012.01.31
PHP 문자열 함수  (0) 2012.01.17
블로그 이미지

스마트전

,