본문 바로가기
반응형

소프트웨어 개발/PHP49

[PHP 기초강좌] 변수 선언 ( variable declaration ) 1. PHP 변수 (1) PHP에서 선언된 모든 변수는 달러 기호( $ )로 시작하고 그 뒤에 변수 이름이 와야 합니다. (2) 대소문자를 구분합니다. (3) PHP 변수명은 첫 문자는 숫자가 아닌 문자 또는 밑줄로 시작해야 합니다. (4) PHP 변수명은 영문, 숫자, 밑줄(예:'a-z','A-Z','0-9','_')만 포함할 수 있습니다. (5) PHP는 데이터 유형을 선언할 필요가 없으며 대신에 PHP가 값을 분석하여 데이터 유형을 자동으로 처리합니다. 2. 대소문자 구분 선언한 문자를 호출하기 위해서는 대소문자를 구분하여 정확하게 작성해야 합니다. 그렇지 않으면 정의되지 않은 변수라고 경고 메시지가 발생됩니다. 3. PHP 변수명 규칙 (1) PHP 변수명은 영문, 숫자, 밑줄(예:'a-z','A.. 2023. 2. 2.
[PHP 기초강좌] PHP 기초 문법 1. PHP 시작을 의미하는 구문 태그 PHP 코딩을 하기 위해서는 PHP 코드를 인식할 수 있는 태그 내에 작성을 해야 합니다. PHP 시작을 알리는 시작 태그는 입니다. 끝을 구분하는 태그는 생략이 가능합니다. 방가워~! 3. 소스코드 메모 - 주석 주석은 소스코드 분석 시 이해를 돕기 위해 일종의 메모입니다. 어렵고 복잡한 코드일수록 주석으로 설명을 잘 작성만 한다면, 다른 협업자들이 이 코드를 봤을 때 쉽게 이해할 수 있을 겁니다. 또한 자신이 개발한 소스코드도 일정 기간 시간이 지나면 기억이 흐려지는데, 주석에 설명을 잘 작성했다면 분석하는 코드를 상기하는데 큰 도움이 됩니다. 메모적인 성격이 강하기 때문에 실제 실행 결과에 반영이 안됩니다. 주석에는 한 줄 주석과 여러 줄 주석이 있습니다. 주.. 2023. 1. 31.
PHP 날짜 형식 정규식 ( yyyy-mm-dd, yyyy/mm/dd,mm/dd/yyyy) 1. 날짜형식 체크 yyyy-mm-dd $date='2022-02-28'; //2022-02-30 fail if(preg_match("/^((((19|[2-9]\d)\d{2})\-(0[13578]|1[02])\-(0[1-9]|[12]\d|3[01]))|(((19|[2-9]\d)\d{2})\-(0[13456789]|1[012])\-(0[1-9]|[12]\d|30))|(((19|[2-9]\d)\d{2})\-02\-(0[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))\-02\-29))$/",$date)) { echo "ok"; } else { echo "fail"; } 2. 날짜.. 2023. 1. 30.
[PHP 기초강좌] PHP란 무엇인가? 1. PHP(Hypertext Preprocessor) 소개 PHP는 전 세계적으로 대중적으로 사용되어진 웹 개발 백 앤드(Backend) 스크립팅 언어입니다. PHP는 1994년 라스무스 러도프(Rasmus Lerdorf) 개발자가 PHP/FI를 개발하였습니다. PHP/FI는 대중적으로 인기를 끌지 못했지만 PHP/FI를 개발했던 경험을 바탕으로 1997년 PHP3를 출시하면서 많은 개발자들에게 관심을 받고 2000년부터 많은 개발자들부터 사용됐습니다. 현재에는 전 세계적으로 사용률이 상위에 랭크될 정도로 많은 사랑을 받고 있습니다. 2. PHP 동작 방식 PHP는 인터프리터 방식의 언어입니다. 인터프리터 방식에 대해서 알려면 컴파일러와 대조적으로 비교하여 설명이 필요합니다. 먼저 컴파일러 방식에 대해.. 2023. 1. 29.
[PHP 기초강좌] PHP 환경설치 - Nginx + PHP8.1 + mariadb 1. 소개 PHP로 개발된 결과물을 웹 브라우저(Web browser)를 통하여 보기 위해서는 웹 서비스 시스템과 연동이 되어야 합니다. 물론 PHP-FPM( FastCGI Process Manager )으로 웹 서비스 없이 접근이 가능하나, 다수의 서비스를 효율적으로 운영하기 위해서는 반드시 웹 서비스 시스템과 연동을 해야만 합니다. 웹 서비스 종류에는 nginx, apache, ms iis 등이 있지만 본 강좌에서는 WSL 우분투 환경에서 nginx 웹 서비스를 구축하여 PHP를 연동하도록 하겠습니다. 2. 작업환경 및 필수사항 - OS : Windows 10 버전 2004 이상(빌드 19041 이상) 또는 Windows 11 - Linux용 Windows 하위 시스템 설치 - 개발도구 : 마이크로소.. 2023. 1. 29.
PHP 5.3 - json_encode 한글처리 PHP 배열을 JSON 형태로 변환시 한글로 출력하여 저장할 경우가 생깁니다. PHP 5.4부터는 JSON_UNESCAPED_UNICODE 도입 되었습니다. 이 인자값의 역할은 json_encode 시 한글 출력이 인코딩 값으로 출력이 되는 것을 한글로 출력되게 해주는 역할을 하고 있습니다. PHP 5.4 이하 버전에서는 이러한 것이 지원이 되지 않기 때문에 아래와 같이 함수를 만들어서 사용하셔야 합니다. 5.4 이상 한글 출력 방법 2022. 12. 1.
정규식 preg_match - 정수(숫자), 실수 체크 1. 정수만 체크 실수를 입력하여도 false를 반환합니다. 2022. 11. 19.
php에서 sha3 구현 한국인터넷진흥원에서 구현한 php sha3 모듈을 이용하여 구현을 하였습니다. 기본 모듈에서는 입력값이 hex로 처리하기 때문에 편하고 쉽게 사용하고자 파라미터 값을 문자열로 입력을 받도록 추가 하였습니다. 사용예) sha3 참고 자료 출처 : 한국인터넷진흥원 https://seed.kisa.or.kr/kisa/Board/79/detailView.do 2022. 8. 20.
[코드이그나이터4] env파일이 반영이 안될 경우 env파일을 .env파일로 변경하시면 반영이 됩니다. 2022. 2. 14.
[코드이그나이터4] 개발 디버깅 모드 설정 들어가기 코드이그나이터4 개발 디버깅 모드 설정은 3가지 방식이 존재합니다. .env 설정, public/index.php에 설정, 웹 서버에 설정 등이 있습니다. 1. env 설정 2. public/index.php 설정 3. nginx 웹 서버 설정 1. env 설정 CI_ENVIRONMENT = development 2. public/index.php 설정 define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR); 코드 바로 하단에 define("ENVIRONMENT","development");코드 추가 define('FCPATH', __DIR__ . DIRECTORY_SEPARATOR); define("ENVIRONMENT","development"); 3. ngin.. 2022. 2. 14.
[코드이그나이터4] 관련자료 링크 정리 코드이그나이터4 링크 정리중 프로젝트 생성 개발 디버깅 모드 설정 시간 설정 뷰 페이지 view 레이아웃 잡기 페이징처리 구현 1 페이징처리 구현 2 세션 사용법 세션 사용법 필터(Filters) 사용법 커스텀 검증(Validation) 모듈 만들기 mariadb/mysql insert_id 가져오기 jquery-ajax 업로드 설정, 컨트롤러 설정 에이전트 정보 [이슈 대응] env파일이 반영이 안될 경우 CodeIgniter\Database\BaseResult::getResult() as shown below: 2022. 2. 14.
[코드이그나이터4] 코드이그나이터4 설치 / 프로젝트 생성 코드이그나이터4 프로젝트 생성 예) composer create-project codeigniter4/appstarter [프로젝트명] 실행) composer create-project codeigniter4/appstarter php 웹 브라우저로 localhost 진입 시 아래 화면처럼 설치 실패가 뜬다면 [코드이그나이터4 프로젝트 경로]/writable 디렉토리 권한을 777을 부여하면 해결됩니다. chmod -R 777 writable 2022. 2. 14.
[코드이그나이터4] 필터(Filters) 사용법 들어가기 코드이그나이터 필터는 인증 관련 처리를 할 때 유용하게 사용합니다. 1. 필터 인터페이스 생성 2. 필터 등록 3. 필터 사용 1. 필터 인터페이스 생성 App\Filters 폴더에 UserAuth.php 파일을 만듭니다. 세션 값에 ss_id가 없으면 Home으로 이동합니다. 2022. 2. 14.
[코드이그나이터4] 세션(session) 사용법 ci4 session 1. 세션 초기화 클래스 생성자에 초기화를 하는 방법을 권장 하나, 메소드에 직접 세션 인스턴스를 로드하거나 생성할 수 있습니다. $session = \Config\Services::session(); $session = session(); 2. 세션 값 저장 $session = session(); # 값을 하나만 저장할 경우 $session->set("mem_id", "sdky23"); # 배열을 통해서 여러개를 저장할 경우 $session->set("memdata", array( "name" => "대조영", "age" => 23, "email" => "sdf2dff@dfdfs.com" )); 3. 세션 값 가져오기 session("mem_id"); $session->mem_id; $session->.. 2022. 2. 14.
[코드이그나이터4] jquery-ajax 업로드 설정, 컨트롤러 설정 1. processData=false processData값이 true일 때에는 파일 업로드가 안됩니다. jquery ajax는 기본값이 processData true이기 때문에 false로 변경합니다. 2. contentType=false 기본값은 true이며 기본값으로는 전송이 안되기 때문에 false로 변경합니다. 파일 업로드 글작성 3. 컨트롤러 선언에 File 개체 선언 컨트롤러 선언부에 use CodeIgniter\Files\File; 선언합니다. 2022. 2. 13.
[코드이그나이터4] 직전 URL 구하기 referer url, 접속 에이전트 구하기, 모바일 여부 체크, 에이전트 정보 구하기 1. 직전URL 구하기 $this->request->getUserAgent()->getReferrer() 2. 접속 에이전트 구하기 $this->request->getUserAgent() 3. 접속 웹 브라우저 구하기 $this->request->getUserAgent()->getBrowser() 4. 접속 웹 브라우저 버전 정보 반환 $this->request->getUserAgent()->getVersion() 5. 모바일 웹 브라우저 접속시 접속 스마트폰 종류 기기 반환 : 모바일 여부 체크시 활용도가 높음 $this->request->getUserAgent()->getMobile() 6. 접속 플랫폼 구하기 : [이슈 2020.02.13 기준 ]Windows 11로 접속을 하여도 Windows 1.. 2022. 2. 13.
[코드이그나이터4] mariadb/mysql insert_id 가져오기 데이터 insert 후 insert_id를 가져오시려면 insertID() 메소드를 활용하시면 됩니다. public function _insert( $data=array() ) { $this->builder()->insert($data); return $this->insertID(); } 2022. 2. 13.
[코드이그나이터4] 커스텀 검증(Validation) 모듈 만들기 1. 사용자 검증 모듈 만들기 app 폴더에 Validation 폴더를 만듭니다. 이 폴더는 검증 관련 모듈을 관리하는 폴더로 사용할 것입니다. 그리고, Validation 폴더에 UserValidation.php 파일을 만듭니다. isonlyHangul메소드는 한글만 입력하였는지 체크하는 메소드입니다. 2022. 2. 13.
[코드이그나이터4] 데이터를 1개의 행으로 가져오고 싶을 경우 getRow(); 데이터를 1개의 행으로 가져오고 싶을 경우 getRow(); public function get_data( int $ss_board_id ) { return $this->builder() ->where('ss_board_id',$ss_board_id)->get()->getRow(); } 2022. 2. 13.
[코드이그나이터4] 페이지네이션 뷰 만들기/뷰 생성 들어가기 이 예제를 구현하기 위해서는 페이지네이션 처리를 먼저 구현하셔야 합니다. 참고가 필요하시면 아래 링크를 참고하시면 됩니다. https://lifefun.tistory.com/70 [코드이그나이터4] 페이지네이션, 페이징처리 구현 - 모델에서 구현 1. 구현을 위한 데이터베이스 테이블 예제 구현을 위해 테이블을 생성합니다. CREATE TABLE `ss_board` ( `ss_board_id` INT(11) NOT NULL AUTO_INCREMENT, `subject` VARCHAR(255) NOT NULL COMMENT '글 제목' CO.. lifefun.tistory.com 1. 페이지네이션 뷰 파일 생성 app\Views\Pagers\ 폴더에 cus_pager.php 파일을 생성합니다. 이 .. 2022. 2. 12.
반응형