WEB언어 56

[php] Date Format 일자/날짜 포멧 변경하기 총정리 strtotime() , DateTime::createFromFormat()

php 프로그램을 하다 보면, 날짜 포맷을 변경은 너무도 많이 쓰이는 기능 중에 하나입니다. 각 나라마다 날짜의 표현 형식이 다릅니다. 미국은 "월/일/년도", 한국은 "년도. 월. 일." 형식을 많이 사용합니다. 요즘은 html5 속성인 date를 통해서 기본 일자 입력 폼을 지원함에 value값을 세계 표준형으로 변경해서 넘겨줘야 하는 일도 있습니다. 표시: 10/30/2019 => 넘겨주는 값: 2019-10-30로 변경해서 주는 부분 특히, 미국의 경우 각 주(State)마다 시간이 다른 곳이 발생하면서, 시간 개념의 php 함수들을 많이 사용합니다. 지역별 LA시간, NewYork시간를 받아서 처리해야 할 때가 있습니다. 이런 Date에 대한 내용중에 가장 많이 사용하는 것들을 정리해 보려고 합..

WEB언어/PHP 2019.10.31

[PHP] 소수점 이하 2 자리까지 표시하기 (예: $ 1.10 )

미국 화폐는 센트(0.01)가 최소 기본 단위로, 소수점 이하 2자리까지 표시가 되어야 하는 경우가 많습니다. 소수점 2자리 표시 처리를 위한 방법과 예제 1) sprintf() 함수를 이용하는 방법 2) (추천) number_format를 이용한 방법 520.00 참고: [php] 소수점 이하 2자리까지 표시 php - 확인 - 파이썬 소수점 자리수 버림 code.i-harness.com 2) (추천) number_format 를 이용한 방법 .75를 0.75로 변경하는 포멧 방식 number_format ('.75', 2); //결과는 0.75가 출력됩니다. number_format(float $number [,int $decimals=0]) : string 또는 number_format(float ..

WEB언어/PHP 2019.10.23

PhpStome UI 다크모드 사용하기 (JetBrain제품들 다 지원- Darcula)

요즘 iPhone의 iOS 13에서부터 Display에 Dark 모드가 추가되었습니다. macOS Mojave, Windows 10이 Dark 모드를 지원을 하기 시작했다. 요즘 OS 기기들이 다들 Dark 모드를 지원하는 트렌드가 되어가고 있네요 심지어, IOS에 instagram 앱도 Dark 모드가 지원하는 것을 보게 되었습니다. 제가 가장 많이 사용하는 PhpStome도 Dark 모드가 있었는데 라는 생각이 들어서 찾아보니. 예전에는 PhpStome만 다크 모드라서, 어색했는데. 이제는 대부분의 OS와 많은 SW가 Dark모드 지원으로 어색하지가 않네요. Darcula라는 UI Theme가 NetBeans에도 있네요.

WEB언어/PHP 2019.10.10

[PHP] break / return / exit 차이점

$arr = array('one', 'two', 'three', 'four', 'stop', 'five'); foreach ($arr as $val) { if ($val == 'stop') { break; /* You could also write 'break 1;' here. */ } echo "$val \n"; } break = 루프 탈출 - for, foreach, while 등 여러 번 반복되는 루프의 경우에 해당됨 - 루프 이후에 등장하는 코드를 계속 실행함 - if문은 반복문이 아니라 조건 충족시 1번만 실행되는 코드이므로 해당없음 return = 함수 탈출 또는 인클루드 탈출 - 함수 안에서 쓰면 함수 실행을 종료하고, 그 함수를 호출했던 지점으로 돌아가서 계속 실행함 - 함수 밖에서 쓰면 ..

WEB언어/PHP 2019.07.31

CodeIgnite 에러 로그 보기 설정

PHP 플레임웍인 CodeIgniter에서 에러 Log정보를 보기를 설정 Config파일을 설정을 변경하면 됩니다. /application/config/config.php 파일 수정로그보기 = 1 / 로그 보지 않기 = 0 $config['log_threshold'] = 1; CodeIgniter has some error logging functions built in.Make your /application/logs folder writableIn /application/config/config.php set $config['log_threshold'] = 1; or use a higher number, depending on how much detail you want in your logsUse ..

[PHP] 하나 은행 환율 API를 통한 JSON

서비스 종료 안내 (6/26/2024)더이상 해당 URL에 서비스를 하지 않습니다.https://quotation-api-cdn.dunamu.com/v1/forex/recent?codes=FRX.KRWUSD아쉽게도 더이상 환율 API는 운영되지 않습니다.     KEB 하나은행의 환율 API을 값을 기반으로 PHP 화면을 만들어 보았습니다.jQuery Mobile에 추가하기 위해서, PHP버전용으로 작업을 했습니다.  아래의 jQuery용에서 Onload등 jQuery Mobile 환경에서 처리가 안되는 부분들이 있어서, PHP로 변경 작업을 진행했답니다. PHP의 curl_init()을 이용한 환율변환  PHP버전 소스function get($url){ $ch = curl_init($url); ..

WEB언어/PHP 2018.12.06

PHP7에서 mysql_connect 를 mysqli_connect 로 사용

PHP7에서 mysql_connect를 사용할 수 없어서 변경을 해줘야 합니다. PHP7환경에서 mysql_connect() 를 사용하려면, mysqli_connect(), PDO::__construct()를 사용해야 합니다. 추가로 변경해야 하는 것들 mysql_connect will be replaced by mysqli_connect mysql_error will be replaced by mysqli_error and/or mysqli_connect_error, depending on the context mysql_query will be replaced by mysqli_query For instance: with mysql, you have to use the mysql_select_db o..

WEB언어/PHP 2018.12.05

PHP 현재 자신의 파일명 가져오기 basename($_SERVER['PHP_SELF']);

현재 자신의 파일명을 가져올때 사용되는 함수 You can use basename() and $_SERVER['PHP_SELF'] to get current page file nameecho basename($_SERVER['PHP_SELF']); /* Returns The Current PHP File Name */ 출처: https://stackoverflow.com/questions/13032930/how-to-get-current-php-page-name (주의) $_SERVER['PHP_SELF'] 함수는 요청되는 URL의 기준으로 가져오기에 변조 될 수 있음을 주의해야 합니다.

WEB언어/PHP 2018.05.15

php 이미지 자르기(crop) 만들기

PHP 에서, 이미지 자르기를 오픈 소스를 찾던중에 괜찮아서 남겨둠.다음에 작업후에, 더 상세한 내용은 남겨둬야 할듯 싶다. JCrop Jcrop creates an interface to crop an image. However, actually creating a new, cropped image file is obviously beyond the scope of a client-side plugin. It may also be the most challenging part of implementing such a process in your web application (now that you've found Jcrop). Jcrop Home • Download • Manual • Examples ..

WEB언어/PHP 2018.05.09

[펌] PHP 7.0에서 새로 나온 NULL 병합 연산자 - ??

PHP7 에서 새롭게 나온 연산자에 대한 글을 가져와습니다. 출처: https://mytory.net/2017/11/13/php-7.0-null-coalescing-operator.html 경우에 따라 3항 연산자보다 편하게 사용할 수 있는 ?? 연산자를 소개한다. php7의 여러 기능중 정말 쏠쏠하게 써 먹는 기능이 ?? 연산자(operator)다. 아래처럼 활용한다.$user = $_GET['user'] ?? ''; $name = $name ?? ''; $is_print = $config['is_print'] ?? false; 좀더 자세히전에는 $_GET['user'] 같은 것을 받을 때 이게 세팅돼 있는지 검사부터 해야 했다. 아래처럼 말이다.$user = ''; if (!empty($_GET['u..

WEB언어/PHP 2018.04.14

CodeIgniter 세션 클래스

세션 하나만 추가, 가져와서 사용하기. 세션에 하나의 Key와 Value를 넣고 싶을때,$this->session->set_userdata('some_name', 'some_value'); 새션데이터 가져오기 $session_id = $this->session->userdata('session_id'); 참고: (한글) 세션 Session Class 일반적인 새션 생성 예제 $newdata = array( 'username' => 'johndoe', 'email' => 'johndoe@some-site.com', 'logged_in' => TRUE ); $this->session->set_userdata($newdata); 참고: 쿠키의 저장용량은 4KB 가 한계입니다, 그러므로 그 한계치를 넘지않도록 ..

CodeIgniter .htaccess 및 URL변경

CI에서 기본 설정값에서는 index.php이라는 경로가 계속 붙는다.그 값을 없애기 위해서는, 2가지를 해주면 된다. (1) /application/config/config.php의 설정 변경$config['index_page']='index.php' 를 $config['index_page']='' 로 변경$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/Your Ci folder_name';$config['index_page'] = '';$config['uri_protocol'] = 'AUTO'; (2) /application/폴더에 .htaccess 파일 생성 RewriteEngine On RewriteBase / RewriteCond %{REQ..

CodeIgniter file delete와 download

CodeIgniter에서 파일을 삭제할때 사용되는 것은 File Helper입니다. File Helper 메뉴얼https://codeigniter.com/user_guide/helpers/file_helper.html (영어)http://www.ciboard.co.kr/user_guide/kr/helpers/file_helper.html (한글) [File delete 처리하기]지정된 경로내의 모든 파일을 지웁니다.$this->load->helper("file"); delete_files($path); // 디렉토리 안에 파일들 삭제delete_files('./path/to/directory/'); // 포함하고 있는 모든 디렉토리까지 삭제 delete_files('./path/to/directory/'..

PHP의 Composer 한글 메뉴얼 + PHP개발자 글

개인적으로 PHP의 Composer를 사용해 본적은 없지만, 관심이 있어 기록해본다. Composer ?composer 는 php 를 개발하는데 있어서 패키지간의 의존성을 관리하는 의존성 관리자입니다. node.js 의 npm, ruby의 bundle과 같은 역할을 수행합니다. php를 개발하는데 있어서 다양한 패키지들을 설치하고 의존성을 관리하며 Autoload를 사용하는데 Composer가 꼭 필요하다고 할 수 있습니다.PHP 5.3.2+ 이상이면 Composer가 구동될 수 있습니다.출처: http://xpressengine.github.io/Composer-korean-docs/ ======================검색중에 발견되 포스트, 제목처럼 놓치지 말아야 할 것들인 것 같다. 당신이 P..

WEB언어/PHP 2018.01.05

[PHP]문자열 필터링 함수 eregi 등의 취약점

PHP 5.3+의 환경의 eregi를 통해서 문자열 검증을 하는 경우가 잘 못 처리되는 경우가 있다. (POSIX Regex 필터)그중에도, HTTP(GET)요청에 %00 (null)을 입력으로 입력하면, 해당 정보를 제대로 처리 못하는 경우가 있다. test.php 해당 환경에서는 오류없음PHP5.3+환경에서 필터가 비정상적인 것을 알 수 있다.다음과 같은 PHP 5.3+ 환경에서는 POSIX Regex함수들을 PCRE Regex로 변경하는 것이 필요하다. 아래는 대체 함수들 리스트 입니다. Function replacements POSIX PCRE ereg_replace() preg_replace() ereg() preg_match() eregi_replace() preg_replace() eregi..

WEB언어/PHP 2017.12.19

gmail 계정으로 이메일 보내기 + AWS에서 PHP를 이용한 SMTP를 통해 이메일 전송

Gmail 계정을 통해서, 이메일 보내기 // Pear Mail Library require_once "Mail.php"; $from = ''; $to = ''; $subject = 'Hi!'; $body = "Hi,\n\nHow are you?"; $headers = array( 'From' => $from, 'To' => $to, 'Subject' => $subject ); $smtp = Mail::factory('smtp', array( 'host' => 'ssl://smtp.gmail.com', 'port' => '465', 'auth' => true, 'username' => 'johndoe@gmail.com', 'password' => 'passwordxxx' )); $mail = $smtp-..

WEB언어/PHP 2017.12.16

[PHP] 접속자 IP 알아내기 함수.

PHP에서 접속자의 IP를 찾는 함수 입니다.IP주소를 얻는 가장 쉬운 방법은 $_SERVER['REMOTE_ADDR'] or $_SERVER['REMOTE_HOST'] 사용입니다. 그러나, 때로는 접속자의 IP가 올바르지 않게 얻어질 수 있기에,다른 변수를 사용해서 IP주소를 가져오도록 합니다. 아래의 2가지 방법은 결과는 동일합니다. getenv() is used to get the value of an environment variable in PHP.// Function to get the client IP address function get_client_ip() { $ipaddress = ''; if (getenv('HTTP_CLIENT_IP')) $ipaddress = getenv('HTTP..

WEB언어/PHP 2017.12.12

PHP 객체지향 방식

초기 PHP가 생겼을때는 PHP에는 Object 개념이 없었지만, 요즘은 PHP의 Object개념을 많이들 사용합니다. PHP의 객체 지향 방식 내용class Property {public $name;public $price;public $address_primary;public $address_secondary;public $city;public $state;public $zip; public function setName($foo){//$name = $foo;//Not access$this->name = '['.$foo.']';// OK}public function getName() {return $this->name;} public function setZip($foo){$this->zip = $f..

WEB언어/PHP 2017.11.30

[PHP] HTTP와 HTTPS에 따라 URL변경하기

PHP에서 http와 https를 확인하고 넘겨주는 방법. (간단한 소스이지만, 유용합니다.)$actual_link = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]"; 다음과 같이 실행하면,현재 https://가 지원하는 서버라면, "https://도메인이름" 넘기고, 지원하지 않는다면 "http://도메인이름"으로 넘기게 되겠죠.실질적으로 넘겨주는 부분은 이렇게 만들어 주면 되겠죠. header('Location:'.$actual_link);

WEB언어/PHP 2017.10.26

[PHP] Notice: Undefined variable 초기값이 없을때 나는 오류

PHP 에러중에 "Undefined variable" 나타날때, 해당 값의 변수의 초기값이 없을때, 나타난다. 해당 방법을 없애는 것은 경고 메시지를 보이지 않게 하던지. 해당 변수값의 초기값을 주면 해결된다. 또는 내가 무심결에 소스에 Error보기 설정이 되어 있을때도 에러나 날수 있습니다. // we will do our own error handling error_reporting(E_ALL); ini_set("display_errors", 1); 참고로 저의 경우 retune $tmp; 을 넘길때, $tmp값을 선언하지 않았을때, 에러가 났다. $tmp가 array타입이라서 $tmp = []; 로 선언해 줬습니다. 아래는 에러에 대한 설명들이 잘 나와 있어서 배껴둡니다. 출처: https://s..

WEB언어/PHP 2017.10.25

(따옴표) Single쿼텐션 없애기 / 엔터 없애기 / GET방식 & 와 + 전송하기

Singe quote를 없애는 PHP함수는 addslashes를 많이 사용한다. Ruby's 를 Ruby\'s 로 변환시켜준다. string addslashes ( string $str )Returns a string with backslashes before characters that need to be escaped. These characters are single quote ('), double quote ("), backslash (\) and NUL (the NULL byte).참고: http://php.net/manual/en/function.addslashes.phphttp://php.net/manual/en/function.mysql-real-escape-string.php 또하나 Ja..

WEB언어/PHP 2017.10.13

PHP mysql_real_escape_string사용하지 않는 방법

PHP에서는 SLQ Injection을 위해서, mysql_real_escape_string를 많이 사용했다.그러나, PHP 5.5부터 사용이 규제 되었고, PHP 7.0에서는 사라져 버렸다. 해당 부분을 처리하기 위한 방법Its pretty simple really:$db = new PDO($dsn, $user, $password); $stmt = $db->prepare('INSERT INTO table1 VALUES(?,?)'); $stmt->execute(array($keyword, $guideline)); $stmt->close(); $stmt2 = $db->prepare('SELECT * FROM table2 WHERE keyword= ?'); $stmt->execute(array($keywor..

WEB언어/PHP 2017.10.13
1 2