Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP

  1. PHP에서 C++의 friend(친구) 선언을 흉내 내는 방법

    PHP는 friend 또는 internal 접근 제어를 지원할까? 결론부터 말씀드리면, PHP는 C++의 friend나 C#의 internal처럼 특정 클래스에 한해 private 멤버 접근을 허용하는 선언을 공식적으로 지원하지 않습니다. 언어 차원에서 이러한 세밀한 접근 제어 문법이 없기 때문에, 개발자는 다른 우회 방법을 찾아야 합니다. __get과 __set 매직 메서드로 friend 흉내 내기 PHP 5 이상에서는 __get()과 __set() 매직 메서드를 활용하고, debug_backtrace() 함수로 호출자의 클래스

  2. PHP에서 HTML SELECT/OPTION 값을 NULL로 처리하는 방법

    HTML 폼에서 전송된 값은 NULL이 될 수 있을까?결론부터 말하면 불가능합니다. PHP에서 POST나 GET으로 전달되는 값은 절대 null이 될 수 없습니다. 값이 선택되지 않은 경우에도 서버로 전달되는 것은 빈 문자열()입니다.따라서 HTML SELECT/OPTION 요소의 값을 null처럼 다루고 싶다면, 전달받은 빈 문자열을 직접 null로 변환하는 추가적인 처리가 필요합니다.빈 문자열을 NULL로 변환하는 예제아래 코드는 POST로 전달된 값이 빈 문자열인지 검사한 후, 해당 값을 null로 할당하는 방법을 보여줍니다.

  3. PHP array_map() 함수로 배열 내 객체의 메소드 호출하는 방법

    PHP array_map()으로 객체 메소드 호출하기PHP에서 배열에 담긴 여러 객체의 메소드를 한 번에 호출해야 할 때 array_map() 함수를 활용하면 코드를 간결하게 작성할 수 있습니다. 버전에 따라 사용 방법이 다르므로 각각 살펴보겠습니다.PHP 5.3 이상: 익명 함수(클로저) 활용PHP 5.3부터는 익명 함수(클로저)를 지원하기 때문에 아래와 같이 콜백 함수를 인라인으로 작성할 수 있습니다.$props = array_map(function($obj) {getProp();}, $objs);위 코드는 배열 $objs에 있

  4. PHP에서 객체의 메모리 크기를 확인하는 방법

    PHP에서는 특정 객체가 실제로 어느 정도의 메모리를 차지하는지 직접 측정하는 전용 함수는 제공되지 않습니다. 하지만 memory_get_usage() 함수를 활용하면 객체 생성 전후의 메모리 사용량을 비교하여 해당 객체가 점유한 메모리 크기를 간접적으로 계산할 수 있습니다.memory_get_usage()를 이용한 측정 원리핵심 아이디어는 간단합니다. 클래스의 인스턴스를 생성하기 직전과 직후에 각각 memory_get_usage()를 호출하고, 두 값의 차이를 구하면 됩니다. 아래 예제 코드를 살펴보겠습니다.class MyBigC

  5. Windows 10에서 PHP Imagick(ImageMagick) 확장 설치하는 방법

    Windows 10에 PHP Imagick(ImageMagick) 확장 설치하기Imagick(ImageMagick)은 PHP에서 이미지 생성, 편집, 변환 등 다양한 이미지 처리 작업을 수행할 수 있게 해주는 대표적인 확장 모듈입니다. Windows 10 환경에서 이 확장을 설치하려면 아래의 절차를 순서대로 따라 하는 것이 좋습니다.1. DLL 파일 권한 확인설치 시 가장 먼저 확인해야 할 부분은 .dll 파일의 권한입니다. Apache 사용자가 해당 파일을 읽을 수 있도록(read access) 권한이 설정되어 있는지 반드시 점검

  6. PHP에서 도메인 이름 유효성을 검사하는 방법

    웹 애플리케이션을 개발하다 보면 사용자가 입력한 도메인 이름이 올바른 형식인지 확인해야 하는 경우가 자주 발생합니다. PHP에서는 preg_match 함수와 정규 표현식을 조합하여 도메인 이름의 유효성을 손쉽게 검사할 수 있습니다.검사 항목 이해하기도메인 이름이 유효한지 판단하기 위해서는 일반적으로 다음 세 가지 기준을 확인합니다.허용되는 문자 검사: 도메인은 영문 소문자, 숫자, 하이픈(-)으로만 구성되어야 합니다.전체 길이 검사: 도메인 이름 전체 길이는 최대 253자를 초과할 수 없습니다.각 라벨 길이 검사: 점(.)으로 구분

  7. PHP에서 백슬래시(\)가 포함된 문자열을 만드는 방법

    PHP에서 문자열에 백슬래시(\)를 포함시키는 방법은 문자열을 감싸는 따옴표의 종류에 따라 다릅니다. 백슬래시가 문자열을 닫는 따옴표를 이스케이프하지 않거나, 큰따옴표 문자열에서 유효한 이스케이프 시퀀스를 만들지 않는다면 아래의 코드를 활용하여 백슬래시 하나를 그대로 출력할 수 있습니다. 작은따옴표 문자열에서 백슬래시 사용하기 작은따옴표()로 묶인 문자열에서는 백슬래시가 대부분 특별한 의미 없이 그대로 해석됩니다. 따라서 별도의 이스케이프 처리 없이 백슬래시를 바로 입력할 수 있습니다. 예제 $string = abc\def;prin

  8. PHP scandir() 함수로 디렉터리 내 파일과 폴더 찾기

    PHP에서 특정 경로에 폴더나 파일이 존재하는지 확인하려면 is_dir() 또는 is_file() 함수를 사용하면 됩니다.scandir() 함수는 지정한 디렉터리 안에 있는 파일과 하위 디렉터리 목록을 배열 형태로 반환하는 PHP 내장 함수입니다. 사용자가 지정한 경로 내부의 모든 항목을 손쉽게 나열할 수 있어, 디렉터리 탐색 작업에서 가장 널리 활용되는 함수 중 하나입니다.사용 예제$scan = scandir(myFolder); foreach($scan as $file) { if (!is_dir(myFolder/$file)

  9. PHP에서 CSV 파일을 가져오는 방법 – fopen과 fgetcsv 활용 가이드

    PHP에서 CSV 파일 가져오기PHP에서는 fopen과 fgetcsv 함수를 조합하면 CSV 파일을 아주 간단하게 가져와 화면에 출력할 수 있습니다. 아래 예제 코드를 확인해 보세요.<?php $row = 1; if (($handle = fopen(name_of_file.csv, r)) !== FALSE) { while (($data = fgetcsv($handle, 1000, ,)) !== FALSE) { $num = count($data); echo <p> $num fields

  10. PHP에서 쿠키 존재 여부를 확인하고 값이 없을 때 설정하는 방법

    PHP 쿠키 존재 여부 확인의 한계PHP 공식 매뉴얼에 따르면, setcookie() 함수로 쿠키를 설정한 직후에는 해당 쿠키의 존재 여부를 즉시 확인할 수 없습니다.매뉴얼에는 이렇게 설명되어 있습니다. 쿠키가 설정되면, 다음 페이지가 로드될 때 $_COOKIE 또는 $HTTP_COOKIE_VARS 배열을 통해 접근할 수 있습니다.쿠키가 즉시 사용할 수 없는 이유그 이유는 쿠키가 브라우저로 전송되는 응답 헤더(response header)이기 때문입니다. 브라우저는 응답을 받은 후, 그다음 요청 시에야 해당 쿠키를 서버로 다시 전송

  11. PHP에서 fopen으로 폴더 생성하기: is_dir과 mkdir 활용법

    PHP의 fopen 함수는 파일을 열거나 생성하는 데에만 사용할 수 있으며, 폴더(디렉터리)를 생성하는 기능은 제공하지 않습니다. fopen은 오직 파일 단위로만 동작하기 때문에, 파일이 위치할 디렉터리가 존재하지 않으면 fopen 호출 자체가 실패하게 됩니다.fopen 사용 전 디렉터리 존재 여부 확인하기따라서 fopen을 사용하기 전에 is_dir 함수로 해당 디렉터리가 이미 존재하는지 먼저 확인하고, 존재하지 않는다면 mkdir 함수로 새로 생성해 주어야 합니다.$filename = /path/to/file.txt; $dirn

  12. PHP에서 문자열을 나눌 때 빈 값 제거하는 3가지 방법 (array_filter · preg_split)

    PHP에서 explode() 함수로 문자열을 나누면 구분자가 연달아 등장할 경우 빈 문자열이 배열 요소로 포함됩니다. 예를 들어 입력값이 ,abc,defg,,,hijk,lmnop,,0,,처럼 되어 있다면 불필요한 빈 값이 여러 개 생깁니다. 이럴 때 array_filter() 함수 또는 preg_split()의 PREG_SPLIT_NO_EMPTY 옵션을 활용하면 빈 값을 손쉽게 제거할 수 있습니다. 방법 1: array_filter() 기본 사용 array_filter()를 콜백 없이 호출하면 배열의 각 요소를 불리언 값으로 평가하

  13. PHP에서 Base64 인코딩을 감지하는 방법

    PHP에서 Base64 인코딩 감지하기PHP로 개발하다 보면 전달받은 문자열이 Base64로 인코딩된 데이터인지 확인해야 하는 경우가 있습니다. 이 글에서는 ord()와 max() 함수를 활용해 문자열의 바이트 값을 분석하는 방법을 예제와 함께 살펴보고, 실무에서 바로 적용할 수 있는 추가 검증 기법도 함께 정리했습니다.예제 코드<?php $value_1 = array(); foreach (str_split(az019AZ~~~!@#$%^*()_+|}?><: Iñtërnâtiônàlizætiøn) as $char) {

  14. PHP preg_replace 함수로 문자열에서 구두점 제거하는 방법

    PHP의 preg_replace 함수를 활용하면 문자열 안에서 원하지 않는 구두점(특수문자)을 간편하게 찾아 제거할 수 있습니다. 정규 표현식 패턴을 어떻게 작성하느냐에 따라 영문자와 숫자만 남기거나, 영문자만 남기는 등 원하는 형태로 문자열을 자유롭게 정리할 수 있습니다.영문자와 숫자만 유지하기아래 예제는 알파벳과 숫자를 제외한 모든 문자를 공백으로 대체합니다. 패턴 끝에 붙은 i 플래그는 대소문자를 구분하지 않도록 만들어 줍니다.<?php $s = Hello, my name is Bobby !? I am 8 years !;

  15. PHP foreach 루프로 두 배열의 여러 인덱스 변수 동시에 다루기

    PHP foreach 루프에서 두 배열의 인덱스 변수 활용하기PHP에서 foreach 루프는 하나의 배열만 순회하는 데 그치지 않습니다. $index => $value 형태의 키-값 쌍을 활용하면 두 개의 배열을 동일한 인덱스 기준으로 동시에 다룰 수 있으며, 이를 통해 서로 연관된 데이터를 병렬로 처리할 수 있습니다.기본 원리foreach 루프에서 $index 변수에는 현재 요소의 키(배열 인덱스)가 저장되므로, 같은 인덱스 구조를 가진 다른 배열의 값도 $SecondArray[$index]처럼 참조할 수 있습니다.예제 코드

  16. PHP에서 파일의 마지막 줄 읽는 방법

    PHP에서 파일의 마지막 줄만 읽어야 하는 경우가 종종 있습니다. 예를 들어 로그 파일의 최신 기록을 확인하거나, 대용량 파일 전체를 메모리에 불러오지 않고 마지막 데이터만 가져와야 할 때 유용합니다. 이럴 때 fseek() 함수를 활용하면 파일 끝에서부터 역방향으로 탐색하여 효율적으로 마지막 줄만 추출할 수 있습니다.예제 코드$line = ; $f = fopen(data.txt, r); $cursor = -1; fseek($f, $cursor, SEEK_END); $char = fgetc($f); // 파일 끝의 개행 문자 제거

  17. PHP 연관 배열에서 중복 요소 제거하기 – array_map 활용법

    PHP의 array_map 함수는 배열의 모든 요소 값을 사용자 정의 함수에 전달합니다. 그리고 배열의 각 요소에 해당 함수를 적용한 결과로 새로운 값들로 구성된 배열을 반환합니다.array_map 함수 문법array_map(user_defined_function, array_1, array_2, array_3…)사용자 정의 함수와 array_1은 필수 인자이며, array_2와 array_3부터는 선택적으로 지정할 수 있습니다.예제$result = array(     0=>ar

  18. PHP에서 텍스트 파일 내용을 웹페이지에 출력하는 방법 – file_get_contents 완벽 가이드

    PHP로 텍스트 파일 내용을 화면에 표시하기PHP에서 파일의 내용을 그대로 읽어와 웹페이지에 출력하고 싶다면 file_get_contents() 함수를 사용하는 것이 가장 간단한 방법입니다. 이 함수는 지정한 파일 경로를 인자로 받아 해당 파일의 전체 내용을 문자열 형태로 반환합니다.기본 사용 예제아래 코드는 filename.php라는 파일의 내용을 읽어와 화면에 바로 출력하는 기본적인 예제입니다.<?php    echo file_get_contents(filename.php);?>위

  19. PHP 배열에서 특정 인덱스의 객체(요소) 제거하는 방법 – unset() 함수 완벽 가이드

    PHP에서 배열에 저장된 객체나 요소를 제거할 때는 unset() 함수를 사용합니다. 이 함수는 지정한 인덱스의 요소를 배열에서 완전히 삭제하며, 별도의 반환값 없이 원본 배열을 직접 수정한다는 특징이 있습니다.unset() 함수로 배열 요소 제거하기아래 예제에서는 4개의 요소를 가진 배열에서 인덱스 2번 위치의 항목을 제거하는 과정을 보여줍니다.예제 코드 $object) { if ($key == $index) { unset($objectarray[$index]); } } var_dump($objecta

  20. PHP에서 IP 주소의 국가 정보를 기반으로 도메인을 자동으로 리디렉션하는 방법

    웹 서비스를 운영하다 보면 방문자의 위치(국가)에 따라 다른 도메인이나 언어 페이지로 자동 연결해야 하는 경우가 있습니다. PHP에서는 GeoIP 확장 모듈을 활용하면 IP 주소의 정확한 지리적 위치를 파악할 수 있으며, 이를 통해 손쉽게 국가별 리디렉션을 구현할 수 있습니다.1. geoPlugin 클래스 준비하기GeoIP 확장 외에도 별도 설치 없이 사용할 수 있는 geoPlugin 클래스가 유용합니다. 아래 링크에서 클래스 파일을 다운로드할 수 있습니다.https://www.geoplugin.com/_media/webservic

Total 1286 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:42/65  20-컴퓨터/Page Goto:1 36 37 38 39 40 41 42 43 44 45 46 47 48