PHP $_POST란 무엇인가?$_POST는 PHP에서 미리 정의된(superglobal) 변수로, HTTP POST 방식으로 전송된 키-값(key-value) 쌍의 데이터를 담고 있는 연관 배열(associative array)입니다. 이 변수가 값을 받기 위해서는 요청 시 콘텐츠 타입이 application/x-www-form-urlencoded 또는 multipart/form-data여야 합니다.참고로 과거에는 $HTTP_POST_VARS라는 변수에 같은 정보가 담겨 있었지만, 이 변수는 슈퍼글로벌(superglobal)이 아
PHP $_REQUEST란 무엇인가?PHP의 슈퍼글로벌 변수 $_REQUEST는 기본적으로 $_GET, $_POST, $_COOKIE 세 변수의 내용을 하나로 모아 담고 있는 연관 배열(associative array)입니다. 즉, 폼 전송(GET/POST)과 쿠키를 통해 들어온 사용자 입력을 별도 구분 없이 단일 배열로 접근할 수 있게 해주는 편리한 변수입니다.다만 $_REQUEST 배열의 실제 구성은 고정된 것이 아니라 php.ini 파일의 설정에 따라 달라집니다. 어떤 변수들이 포함되고, 어떤 순서로 등록되는지는 모두 설정값에
개요PHP에는 $http_response_header라는 특별한 슈퍼글로벌(superglobal) 배열이 존재합니다. 이 배열은 file_get_contents()와 같은 함수를 통해 HTTP 요청을 보냈을 때, 서버가 반환한 HTTP 응답 헤더(response header)들이 자동으로 저장되는 공간입니다.get_headers() 함수가 별도의 호출을 통해 헤더 정보를 가져오는 것과 달리, $http_response_header는 실제 요청이 발생하는 순간 PHP가 자동으로 생성해 주기 때문에 별도의 추가 작업 없이 바로 활용할
소개데이터 URI(data URI) 스킴은 1998년에 발표된 RFC 2397에서 정의되었습니다. 이 스킴은 웹 페이지에 외부 리소스처럼 인라인(in-line) 데이터를 직접 포함할 수 있는 메커니즘을 제공합니다. PHP는 이러한 데이터 URI 표현을 위해 data:// 스트림 래퍼(wrapper)를 지원하며, 이를 활용하면 별도의 파일 없이도 문자열이나 바이너리 데이터를 파일처럼 읽고 처리할 수 있습니다.데이터 URI는 다음과 같은 문법으로 표현됩니다.data:// 문법data:[미디어 타입][;base64],데이터매개변수 설명미
PHP file:// 래퍼란? PHP에서는 내장 래퍼(wrapper)를 통해 파일 시스템 함수와 함께 다양한 URL 스타일의 프로토콜을 사용할 수 있습니다. 또한 stream_wrapper_register() 함수를 활용하면 개발자가 직접 사용자 정의 래퍼를 만들 수도 있습니다. PHP의 기본 래퍼는 file://이며, 로컬 파일 시스템을 나타냅니다. 별도의 프로토콜을 명시하지 않으면 PHP 파서는 자동으로 파일 시스템 래퍼로 처리합니다. 즉, fopen(), file_get_contents() 같은 파일 시스템 함수에 전달하는
개요PHP에서 제공하는 ftp://와 ftps:// 스트림 래퍼(wrapper)는 FTP(및 FTPS) 프로토콜을 사용하는 URL에 대한 읽기 접근을 가능하게 합니다. 또한 이 래퍼들을 통해 새로운 파일을 생성할 수도 있습니다. 단, 서버 측에서 패시브 모드(passive mode) FTP를 지원하지 않는 경우 연결은 실패하게 됩니다.FTP 프로토콜을 사용하는 스트림에서는 읽기와 쓰기를 동시에 수행하는 것이 허용되지 않습니다. 만약 기존 파일을 덮어쓰기(overwrite)해야 하는 상황이라면, 컨텍스트 옵션(context optio
소개glob:// 스트림 래퍼는 PHP 5.3.0 이후 모든 버전에서 사용할 수 있습니다. 이 래퍼는 지정된 패턴과 일치하는 경로명(pathname)을 찾는 역할을 합니다. 같은 목적으로 PHP의 파일 시스템 함수인 glob()이 있으며, 이 함수는 libc의 glob() 규칙을 따릅니다.매개변수특수 문자* − 0개 이상의 임의의 문자와 일치합니다.? − 정확히 한 개의 문자(모든 문자)와 일치합니다.[...] − 문자 그룹 중 하나의 문자와 일치합니다. 첫 번째 문자가 !이면 그룹에 포함되지 않는
개요PHP의 https:// 및 https:// 래퍼(wrapper)는 HTTP 프로토콜을 통해 원격 리소스와 파일에 접근할 수 있게 해주는 스트림 래퍼입니다. 다만 이 래퍼는 읽기 전용(read-only)으로만 동작하며, 파일 쓰기나 복사 기능은 지원하지 않습니다.가상 호스트(virtual name-based host) 환경에서 요청을 처리할 때는 host: 헤더가 전송되며, php.ini에서 user_agent가 설정되어 있다면 해당 값도 함께 서버로 전달됩니다.응답과 함께 받은 HTTP 헤더 정보는 $http_response_
소개phar:// 스트림 래퍼(stream wrapper)는 PHP 5.3.0 이후 모든 버전에서 기본적으로 제공됩니다. Phar는 PHP Archive(PHP 아카이브)의 약자로, PHP 애플리케이션이나 라이브러리를 하나의 파일로 묶어 배포할 때 사용되며, 일반 PHP 파일처럼 실행할 수 있습니다.phar:// 래퍼는 fopen()을 통한 읽기/쓰기 및 파일 이름 변경은 물론, opendir()를 이용한 디렉터리 스트림 작업, 그리고 디렉터리 생성과 삭제까지 지원합니다.Phar 클래스를 사용하면 특정 디렉터리에 담긴 애플리케이션
PHP php:// 스트림 래퍼란?PHP에서 php://는 파일을 다루듯이 다양한 I/O 스트림에 접근할 수 있게 해주는 특수한 스트림 래퍼(wrapper)입니다. 이를 통해 표준 입력·출력·오류 스트림은 물론, 메모리 기반 스트림, 디스크 임시 파일 기반 스트림, 그리고 필터가 적용된 스트림까지 모두 활용할 수 있습니다.표준 스트림 (Standard Streams)php://stdin, php://stdout, php://stderr는 각각 PHP 프로세스의 표준 입력 장치, 표준 출력 스트림, 오류 스트림에 직접 접근할 수 있게
소개RAR(Roshal Archive)는 오류 복구(error recovery)와 파일 분할(file spanning)을 지원하는 파일 압축 형식입니다. PHP는 .RAR 파일을 IO 스트림으로 다룰 수 있도록 지원하며, rar://는 바로 이 RAR 스트림을 위한 스트림 래퍼(stream wrapper)입니다.rar:// 래퍼는 RAR 아카이브의 상대 경로 또는 절대 경로(URL 인코딩 필요)를 입력값으로 받습니다. 여기에 선택적으로 별표(*) 또는 샵(#) 기호를 붙일 수 있고, 아카이브 내부에 저장된 항목 이름(URL 인코딩
개요libssh2 라이브러리는 암호화된 보안 전송 방식을 통해 원격 머신의 다양한 리소스에 접근할 수 있도록 지원합니다. 제공되는 주요 기능은 셸(shell), 원격 명령 실행(remote exec), 터널링(tunneling), 파일 전송(file transfer), SCP입니다.PHP는 이러한 리소스를 다룰 수 있도록 각각 ssh2.shell://, ssh2.exec://, ssh2.tunnel://, ssh2.sftp://, ssh2.scp://라는 스트림 래퍼(wrapper)를 제공합니다.설치 참고 사항SSH2 관련 래퍼는
개요PHP에서는 zlib://, bzip2://, zip:// 세 가지 스트림 래퍼(wrapper)를 통해 압축 파일을 손쉽게 다룰 수 있습니다. 이 래퍼들은 일반 파일처럼 표준 파일 시스템 함수와 함께 사용할 수 있어, 별도의 복잡한 처리 없이 압축 및 압축 해제 작업을 수행할 수 있다는 장점이 있습니다.compress.zlib://compress.zlib:// 래퍼는 gzopen() 함수와 유사한 방식으로 동작합니다. 다만 gzopen()과 달리 fread(), file_get_contents(), file_put_content
PHP에서 배열(array)을 문자열(string)로 변환하려면 implode() 함수를 사용하면 됩니다. implode()는 배열의 각 요소를 지정한 구분자(separator)로 연결하여 하나의 문자열로 만들어 주는 내장 함수입니다.기본 사용법예를 들어 다음과 같은 배열이 있다고 가정해 보겠습니다.$sentence = array(My, Name, is, John);이 배열을 공백( )을 구분자로 사용하여 문자열로 변환하는 방법은 다음과 같습니다.implode( , $sentence)예제 1: 공백으로 요소 연결하기<!DOCT
PHP에서 배열에 포함된 null 값을 제거하려면 내장 함수인 array_filter()를 사용하면 됩니다. 이 함수는 콜백 없이 호출될 경우 배열에서 false로 평가되는 모든 요소(null, 0, 빈 문자열 등)를 자동으로 걸러냅니다. array_filter() 기본 사용법 예를 들어 다음과 같이 학생 정보가 담긴 연관 배열이 있다고 가정해 보겠습니다. 여기서 lastName 키의 값은 null입니다. null); echo 원본 배열 = ; print_r($studentDetails); array_filter()를 적용해 nu
PHP 루트 디렉토리 경로 구하기PHP 프로젝트에서 루트 디렉토리, 즉 현재 실행 중인 파일이 위치한 디렉토리의 경로를 확인하려면 __DIR__ 매직 상수 또는 dirname() 함수를 사용하면 됩니다.방법 1: __DIR__ 사용__DIR__은 PHP 5.3부터 도입된 매직 상수로, 현재 파일이 존재하는 디렉토리의 절대 경로를 반환합니다.echo __DIR__;방법 2: dirname(__FILE__) 사용dirname() 함수에 __FILE__ 상수를 인자로 전달하면 해당 파일이 속한 디렉토리 경로를 얻을 수 있습니다.echo
PHP의 foreach 루프에서 배열의 값을 직접 접근하고 수정하려면 참조(reference) 연산자인 &를 사용하면 됩니다. 참조를 활용하면 루프 내부에서 배열의 원본 값을 변경할 수 있으며, 이를 새로운 배열에 담아 반환하는 것도 가능합니다.기본 문법foreach에서 배열 값을 참조로 가져오는 기본 문법은 다음과 같습니다.foreach ($yourArrayName as &$anyVariableName)여기서 변수 이름 앞에 붙은 &가 핵심입니다. 이 기호가 없으면 루프 안에서 값을 변경해도 원본 배열에는 아무런 영
PHP에서 특정 파일이 비디오 파일인지 확인해야 할 때가 종종 있습니다. 가장 손쉬운 방법은 파일 이름에서 확장자를 추출한 후, 알려진 비디오 확장자와 일치하는지 비교하는 것입니다.explode()와 end()로 확장자 확인하기예를 들어 다음과 같이 .mp4 파일 경로가 담긴 변수가 있다고 가정해 보겠습니다.$movieFileType=demo.mp4;이 파일이 비디오 형식인지 확인하려면 먼저 explode() 함수를 사용해 파일 이름을 마침표(.)를 기준으로 분리하고, end() 함수로 배열의 마지막 요소인 확장자를 가져옵니다. 그
긴 문자열을 화면에 표시할 때 전체 내용 대신 일부만 보여주고 나머지를 생략 부호(...)로 처리하고 싶은 경우가 자주 있습니다. 예를 들어 게시글 목록이나 검색 결과에서 유용하게 사용할 수 있습니다.예제 문자열다음과 같은 문자열이 있다고 가정해 보겠습니다.$sentence="This is my first PHP program";우리가 원하는 출력 결과는 다음과 같습니다.This is my first PHP ... gram구현 원리문자열을 "..."로 줄이려면 PHP의 substr() 함수를 활용
PHP switch 문에서 case 0이 실행되는 이유 PHP는 느슨한 타입(loosely typed) 언어입니다. switch 문은 내부적으로 느슨한 비교(==)를 사용하기 때문에, 조건값이 문자열이고 case 값이 정수일 경우 문자열이 정수로 변환된 후 비교됩니다. 이 과정에서 숫자로 해석할 수 없는 문자열은 0으로 변환되므로, 의도하지 않게 case 0 블록이 먼저 실행될 수 있습니다. 예를 들어 다음과 같은 switch 표현식이 있다고 가정해 보겠습니다. switch (match) 이제 case 0과 비교하는 부분은 다음과