728x90
반응형

IT/PHP | CI 11

[PHP] 알면 좋은 배열 함수 array_map, array_filter, array_merge , array_diff, array_column, array_unique

array_map() 배열의 각 요소에 사용자 정의 함수를 적용하여 새로운 배열을 반환$numbers = [1, 2, 3, 4];$squared = array_map(function($n) { return $n * $n; }, $numbers);print_r($squared);결과Array( [0] => 1 [1] => 4 [2] => 9 [3] => 16)  array_filter () 배열에서 조건을 만족하는 값들만 필터링하여 새로운 배열을 반환$numbers = [1, 2, 3, 4, 5];$even_numbers = array_filter($numbers, function($n) { return $n % 2 == 0; });print_r($even_numbers);결과Arra..

IT/PHP | CI 2025.02.27

[PHP] $_SERVER['REMOTE_ADDR']의 함정: 실제 사용자 IP를 정확히 파악하는 기술

$_SERVER["REMOTE_ADDR"]를 사용하여 사용자의 IP 주소를 얻는 것은 일반적으로 많이 사용되는 방법입니다. 하지만 이 방법에는 몇 가지 주의사항과 잠재적인 문제가 있을 수 있습니다. 문제점 1. 프록시 서버 또는 VPN 사용일반적으로 $_SERVER["REMOTE_ADDR"]는 사용자의 실제 IP 주소를 반환하지만, 사용자가 프록시 서버나 VPN을 사용하는 경우 이 값은 사용자의 실제 IP 주소가 아닌 프록시 서버나 VPN의 IP 주소를 반환할 수 있습니다. 이로 인해 실제 사용자의 위치를 파악하기 어려울 수 있습니다.  2. 로드 밸런서 또는 리버스 프록시웹 애플리케이션이 로드 밸런서나 리버스 프록시 뒤에 있는 경우 $_SERVER["REMOTE_ADDR"]는 종종 로드 밸런서나 프록시..

IT/PHP | CI 2024.09.10

[PHP] 쿼리 반복문 없이 효율적으로 실행시키기

데이터가 아래처럼 있다고 가정합니다.반복문으로 쿼리를 실행하지 않고 일괄 업데이트 시키려고 합니다.$data = [ ['id' => 1, 'name' => 'John', 'age' => 28], ['id' => 2, 'name' => 'Jane', 'age' => 24], ['id' => 3, 'name' => 'Paul', 'age' => 32], ['id' => 4, 'name' => 'Mark', 'age' => 40],];  소스 - update $ids = array_column($data, 'id');$cases = [];foreach ($data as $row) { $cases[] = "WHEN {$row['id']} THEN {$row['age']}";}$case..

IT/PHP | CI 2024.08.09

[PHP] 객체형 배열 값이 존재하는지 확인하는 법

객체형 배열에서 값이 존재하는지 찾고 싶을 때  내가 보려고 만든 소스 1, 'filter_name' => '칼라' 'reg_date' => '2024-07-22 16:21:10' ], [ 'seq' => 2, 'filter_name' => '사이즈', 'reg_date' => '2024-07-22 16:21:10' ]];// 특정 컬럼의 값이 배열에 있는지 확인$column_to_check = 'seq';$value_to_find = 5;if (value_exists_in_array($column_to_check, $value_to_find, $array)) { echo "$column_to_check 값 $value_..

IT/PHP | CI 2024.07.23

[PHP] 포함된 문자 찾기 str_contains(), str_starts_with(), str_ends_with() 및 strpos()

PHP8 버전에서 추가된 몇가지 함수가 있습니다. 그 중에서 특정 단어나 문자가 포함되어 있는 함수들을 소개해볼까 합니다.1. str_contains()설명: 문자열이 특정 서브 문자열을 포함하는지 확인합니다.사용 예시$string = "Hello, World!";if (str_contains($string, "World")) { echo "Found!";}// 출력: Found!## PHP8미만이라면 추가if (!function_exists('str_contains')) { function str_contains($haystack = '', $needle = '') { return $needle !== '' && mb_strpos($haystack, $needle) !== fal..

IT/PHP | CI 2024.06.22

[PHP/CodeIgniter] ZOOM API 연동하기 (sever-to-sever OAuth) - 2

저는 코드이그나이터로 진행하고 헬퍼를 통해서 만들고 진행해봤습니다. 코드이그나이터를 사용하지 않거나 혹은 다른 프레임워크를 쓰더라도 일반 함수 파일을 만든다고 생각하셔도 됩니다. 토큰 발급 ZOOM API 작업을 수행하기 위해서는 토큰이 먼저 필요합니다. 토큰은 1시간마다 만료되기 때문에 만료되면 새로 발급을 받아줘야 합니다. 1시간마다 스케줄링을 돌리거나 에러가 날 경우 try-catch문을 통해서 새로 발급받고 진행하는 방법이 있으나 해당 부분은 생략하겠습니다. zoom_test_helper.php defined('BASEPATH') OR exit('No direct script access allowed'); define('JOOM_ROOT', dirname(__FILE__) . '/zoom'); ..

IT/PHP | CI 2023.10.13

[PHP/CodeIgniter] ZOOM API 연동하기 (sever-to-sever OAuth) - 1

코로나가 시작되면서 비대면, 온라인 형식이 많아졌는데 그 중 많이 사용하는 것중 하나가 ZOOM입니다. ZOOM은 회의 혹은 실시간 강의용으로 보통 많이 사용되고 생각보다 많은 기능들이 있습니다. 앱 생성 먼저 https://zoom.us/ 에서 회원가입을 합니다. 마켓플레이스 https://marketplace.zoom.us/develop/create로 이동하여 앱 생성을 해줍니다. 앱 이름을 편한대로 만들어 주시고, 간단한 설명 및 연락처 정보등을 입력하여 정보를 추가합니다. 후에 계정아이디와 클라이언트 DI, 시크릿 코드를 받게됩니다. 앱 인증 확인하기 아래 링크로 이동하여 ID와 클라이언트 값이 올바르게 발급되었는지 확인합니다. https://reqbin.com/curl 예제) curl -X PO..

IT/PHP | CI 2023.09.27

[PHP] strpos함수로 특정 키워드(문자열) 포함 여부 체크하기

설명 strpos(string $haystack, string $needle, int $offset = 0): int|false (PHP 4, PHP 5, PHP 7, PHP 8) strpos — 문자열에서 하위 문자열이 처음 나타나는 위치를 찾음 출처 PHP: strpos - Manual A pair of functions to replace every nth occurrence of a string with another string, starting at any position in the haystack. The first works on a string and the second works on a single-level array of strings, treating it as a single..

IT/PHP | CI 2023.07.04

[CodeIgniter/PHP] checkbox 배열 데이터 가공해서 SQL IN절에 넣기

웹 개발을 하다 보면 여러 체크박스를 선택하면서 데이터를 추출해 작업하는 것은 굉장히 흔합니다. 나름 제 기준에서는 간소화하다고 생각해서 제가 사용하는 것을 올려봅니다. 1. view 국어영어수학사회 국어 영어 수학 사회 2. controller 일반 php라면 함수를 추가하시면 되고 코드이그나이터라면 helper를 사용하시거나 컨트롤러에 메소드를 하나 추가해서 사용하셔도 됩니다. 문자라면 싱글쿼터(')를 붙여주고, 숫자라면 붙여주지 않습니다. 만약 PHP가 7.3미만이시라면 array_key_first함수도 따로 추가해주시면 됩니다. ##컨트롤러 $data = $this->input->get(NULL, TRUE); print_r($data['subject']); //Array ( [0] => 6702 ..

IT/PHP | CI 2023.06.01
728x90
반응형