Categories
PHP

PHP에서 배열을 오름차순 또는 내림차순으로 정렬하기

PHP에서 배열을 오름차순 또는 내림차순으로 정렬하는 방법을 알아보자.

1. 오름차순 정렬

배열을 오름차순으로 정렬할 때는 sort() 함수를 쓴다.

// 배열을 정의한다.
$weekdays = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday");

// 배열을 오름차순으로 정렬한다.
sort($weekdays);

// 배열 요소들을 출력한다.
foreach ($weekdays as $weekday) {
  echo $weekday . "<br>";
}

출력 결과를 보자.

Friday
Monday
Thursday
Tuesday
Wednesday

2. 내림차순 정렬

배열을 내림차순으로 정렬할 때는 rsort() 함수를 쓴다.

// 배열을 정의한다.
$numbers = array(2022, 10, 28, 7, 13, 55);

// 배열을 내림차순으로 정렬한다.
rsort($numbers);

// 배열 요소들을 출력한다.
foreach ($numbers as $number) {
  echo $number . "<br>";
}

출력 결과를 보자.

2022
55
28
13
10
7

Categories
PHP

우분투 20.04에 PHP CLI 만 별도로 설치하는 방법

우분투에 PHP 를 설치할 때 전체를 설치하지 않고 PHP CLI 만 설치하는 방법을 알아보자.

apt 의 데이터베이스를 업데이트한다.

sudo apt update

PHP CLI 의 우분투 패키지 이름은 php-cli 이다. php-cli 패키지를 설치한다.

sudo apt install php-cli

설치된 PHP 의 버전 넘버를 확인해 본다.

php -v

PHP 7.4.3 (cli) (built: Aug 17 2022 13:29:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

위와 같이 버전 넘버 뒤에 cli 라고 표시된다.

PHP CLI 에서 CLI 는 ‘Command Line Interface’ 를 의미한다.

Categories
PHP

PHP에서 자주 쓰이는 디렉토리 관련 함수: opendir, closedir, readdir, rewinddir

PHP에서 자주 쓰이는 디렉토리 관련 함수들에 대해 알아보자.

1. opendir() 함수와 closedir() 함수

opendir() 함수는 디렉토리 핸들을 연다. 디렉토리 핸들은 readdir() 함수 등 다른 디렉토리 관련 함수에서 사용된다.

closedir() 함수는 디렉토리 핸들을 닫는다.

$dh = opendir("/share/xtmci");    // 디렉토리 핸들을 연다.

  /* 디렉토리 관련 작업을 한다. */

closedir($dh);    // 디렉토리 핸들을 닫는다.

2. readdir() 함수

readdir() 함수는 디렉토리 핸들로부터 파일이나 디렉토리의 이름을 읽는다. 읽는 순서는 파일시스템에서 파일이나 디렉토리가 저장된 순서이다. 읽기에 실패한 경우 false 를 리턴한다.

디렉토리 안에 있는 파일이나 디렉토리를 디렉토리 엔트리 (entry) 라고 한다.

$dh = opendir("/share/xtmci");    // 디렉토리 핸들을 연다.

while (($entry = readdir($dh)) !== false) {    // 디렉토리 엔트리를 읽는다.
  echo $entry . "<br>";    // 디렉토리 엔트리를 출력한다.
}

closedir($dh);    // 디렉토리 핸들을 닫는다.

3. rewinddir() 함수

rewinddir() 함수는 디렉토리 핸들을 초기화한다. 디렉토리를 처음부터 다시 읽을 필요가 있을 때 이 함수를 쓴다. 리턴값은 없다.

$dh = opendir("/share/xtmci");    // 디렉토리 핸들을 연다.

while (($entry = readdir($dh)) !== false) {    // 디렉토리 엔트리를 읽는다.
  echo $entry . "<br>";    // 디렉토리 엔트리를 출력한다.
}

rewinddir($dh);    // 디렉토리 핸들을 초기화한다.

// 디렉토리 엔트리를 처음부터 다시 읽는다.
while (($entry = readdir($dh)) !== false) {
  echo $entry . "<br>";    // 디렉토리 엔트리를 출력한다.
}

closedir($dh);    // 디렉토리 핸들을 닫는다.

Categories
PHP

PHP의 printf() 함수에서 출력 포맷을 지정하는 방법

printf() 함수에서 주어진 값을 여러가지 형식으로 포맷하는 방법을 알아보자.

1. 타입 (type) 의 지정

타입 지정자 d 는 주어진 값을 부호가 있는 십진 정수 타입으로 포맷한다.

printf(“%d<br>”, 255);    // 255 를 출력한다.

printf(“%d<br>”, -255);    // -255 를 출력한다.

타입 지정자 u 는 주어진 값을 부호가 없는 십진 정수 타입으로 포맷한다.

printf(“%u<br>”, 255);    // 255 를 출력한다.

printf(“%u<br>”, -255);    // 18446744073709551361 을 출력한다.

타입 지정자 f 는 주어진 값을 실수 타입으로 포맷한다.

printf(“%f<br>”, 3.14);    // 3.140000 을 출력한다.

타입 지정자 e 는 주어진 값을 과학 표기법에 따라 포맷한다.

printf(“%e<br>”, 1234567890);    // 1.234568e+9 를 출력한다.

타입 지정자 s 는 주어진 값을 문자열로 포맷한다.

printf(“%s<br>”, “xtmci.com”);    // xtmci.com 을 출력한다.

타입 지정자 c 는 주어진 값을 해당 값에 대응하는 아스키 (ASCII) 문자로 포맷한다.

printf(“%c<br>”, 65);    // A 를 출력한다.

printf(“%c<br>”, 90);    // Z 를 출력한다.

타입 지정자 b 는 주어진 값을 이진수 정수 타입으로 포맷한다.

printf(“%b<br>”, 255);    // 11111111 을 출력한다.

타입 지정자 o 는 주어진 값을 8진수 정수 타입으로 포맷한다.

printf(“%o<br>”, 255);    // 377 을 출력한다.

타입 지정자 x 는 주어진 값을 16진수 정수 타입으로 포맷한다. 소문자가 사용된다.

printf(“%x<br>”, 255);    // ff 를 출력한다.

타입 지정자 X 는 주어진 값을 16진수 정수 타입으로 포맷한다. 대문자가 사용된다.

printf(“%X<br>”, 255);    // FF 를 출력한다.

2. 자리수 채우기

자리수를 채우는 문자를 패딩 (padding) 문자라고 부른다.

패딩 문자 0 을 사용하여 자리수를 채워 보자.

printf(“%06d<br>”, 123);    // 000123 을 출력한다.

printf(“%06d<br>”, 1234567);    // 1234567 을 출력한다.

주어진 값의 자리수가 지정한 자리수보다 클 때는 주어진 값의 자리수 만큼 표시된다. 지정한 자리수는 무시된다.

패딩 문자를 지정하지 않으면 공백 문자가 사용된다.

printf(“%6d<br>”, 123);    // ‘   123’ 을 출력한다.

printf(“% 6d<br>”, 123);    // ‘   123’ 을 출력한다.

음수를 지정하면 오른쪽이 채워진다.

printf(“%-6d<br>”, 123);    // ‘123   ‘ 을 출력한다.

0 이나 공백 문자가 아닌 패딩 문자는 홑따옴표 (‘) 와 함께 지정한다. 애스터리스크 (*) 문자를 지정해 보자.

printf(“%’*6d<br>”, 123);    // ***123 을 출력한다.

3. 수의 정밀도 지정

수의 정밀도는 달리 지정하지 않으면 소수점 이하 6 자리로 표현된다.

printf(“%f<br>”, 3.141592654);    // 3.141593 을 출력한다.

점 (.) 과 자리수를 의미하는 숫자를 타입 지정자 앞에 추가하여 정밀도를 변경한다.

printf(“%.8f<br>”, 3.141592654);    // 3.14159265 를 출력한다.

printf(“%.10f<br>”, 3.141592654);    // 3.1415926540 을 출력한다.

4. 양의 부호 표시하기

주어진 값이 양수일 때 양의 부호를 표시하려면 타입 지정자 앞에 플러스 (+) 기호를 추가한다.

printf(“%d<br>”, 255);    // 255 를 출력한다.

printf(“%+d<br>”, 255);    // +255 를 출력한다.