[PHP] 배열인지 아닌지를 확인하는 is_array() 함수[PHP] 배열인지 아닌지를 확인하는 is_array() 함수
Posted at 2019. 2. 21. 10:40 | Posted in PHP■ 해당 변수가 배열인지 아닌지를 체크하는 is_array( ) 함수
# 소스 코드
<?php $idol = array( "twice" => "sana" , "redvelvet" => "wendy" , "lovelyz" => "kei" , "momoland" => "dasiy" );
// is_array는 배열인 경우 1을 리턴한다. if(is_array($idol) == 1) { echo "$idol은 배열입니다."; } else { echo "$idol은 배열이 아닙니다."; } ?> |
# 출력 결과
'PHP' 카테고리의 다른 글
[PHP] 서버 접속 가능여부 확인 (0) | 2020.05.29 |
---|---|
[PHP] JSON 데이터 화면에 출력하기 (0) | 2020.01.16 |
[PHP] DB 입력 or 출력시 따옴표(') 처리하기 (0) | 2018.10.02 |
[PHP] 변수 or 배열의 정보를 표기하는 함수 (0) | 2018.09.17 |
[PHP] mcrypt 방식 OpenSSL 방식으로 대체하기 (0) | 2018.08.30 |
[PHP] DB 입력 or 출력시 따옴표(') 처리하기[PHP] DB 입력 or 출력시 따옴표(') 처리하기
Posted at 2018. 10. 2. 09:46 | Posted in PHP■ addslashes, stripslashes 함수를 이용한 따옴표 처리
PHP에서 문자열에 따옴표 큰 따옴표( " ), 작은 따옴표( ' )가 들어간 내용을 DB에 입력 및 출력시 addslashes와 stripslashes 함수를 사용한다.
그런데 HTML에 값을 직접 넣지 않고, PHP에서 echo등을 통해 직접 출력하는 경우 문제가 생겨 간단히 정리하고자 한다.
① addslashes : 문자열에 따옴표가 삽입된 경우 문자열 앞에 역슬래쉬(\')를 기호를 붙여 사용한다.
② stripslashes : addslashes를 사용한 해당 문자열의 역슬래쉬(\') 기호를 제거한다.
단순하지만 아래 출력 코드와 같이 PHP콛 상에서 input 태그에 값을 넣어 사용하는 경우는 아래와 같이 처리하면 된다.
# 소스코드
<?php <? // 테스트할 따옴표가 들어간 문구 $str = "Rockin' In Rhythm"; echo $str; echo "<br/><hr/><br/>"; // addslashes를 사용하여 따옴표 앞에 역슬래시를 붙임(\') echo "addslashes : ".addslashes($str); echo "<br/><hr/><br/>"; // stripslashes를 사용하여 따옴표 앞에 역슬래시를 제거(\') echo "stripslashes : ".stripslashes($str); echo "<br/><hr/><br/>"; // value값등에 넣을 경우 \"%s\" 식으로 따옴표를 감싸주어서 해결해야 한다. echo sprintf("<input type='text' value=\"%s\"/>", stripslashes($str)); ?> 출처: http://wickedmagic.tistory.com/580 [사악미소의 현대마법의 공방] <? // 테스트할 따옴표가 들어간 문구 $str = "Rockin' In Rhythm"; echo $str; echo "<br/><hr/><br/>"; // addslashes를 사용하여 따옴표 앞에 역슬래시를 붙임(\') echo "addslashes : ".addslashes($str); echo "<br/><hr/><br/>"; // stripslashes를 사용하여 따옴표 앞에 역슬래시를 제거(\') echo "stripslashes : ".stripslashes($str); echo "<br/><hr/><br/>"; // value값등에 넣을 경우 \"%s\" 식으로 따옴표를 감싸주어서 해결해야 한다. echo sprintf("<input type='text' value=\"%s\"/>", stripslashes($str)); ?> 출처: http://wickedmagic.tistory.com/580 [사악미소의 현대마법의 공방] <? // 테스트할 따옴표가 들어간 문구 $str = "Rockin' In Rhythm"; echo $str; echo "<br/><hr/><br/>"; // addslashes를 사용하여 따옴표 앞에 역슬래시를 붙임(\') echo "addslashes : ".addslashes($str); echo "<br/><hr/><br/>"; // stripslashes를 사용하여 따옴표 앞에 역슬래시를 제거(\') echo "stripslashes : ".stripslashes($str); echo "<br/><hr/><br/>"; // value값등에 넣을 경우 \"%s\" 식으로 따옴표를 감싸주어서 해결해야 한다. echo sprintf("<input type='text' value=\"%s\"/>", stripslashes($str)); ?> 출처: http://wickedmagic.tistory.com/580 [사악미소의 현대마법의 공방] |
# 출력결과
위와같이 input 태그에 value 값으로 넣을경우 \값\ 으로 해결할 수 있었다.
단순한 실수 이지만, 생각 이상으로 시간을 잡아먹었던 경우라 정리해 둔다.
'PHP' 카테고리의 다른 글
[PHP] JSON 데이터 화면에 출력하기 (0) | 2020.01.16 |
---|---|
[PHP] 배열인지 아닌지를 확인하는 is_array() 함수 (0) | 2019.02.21 |
[PHP] 변수 or 배열의 정보를 표기하는 함수 (0) | 2018.09.17 |
[PHP] mcrypt 방식 OpenSSL 방식으로 대체하기 (0) | 2018.08.30 |
cURL 연결 함수 (0) | 2018.08.30 |
[PHP] 변수 or 배열의 정보를 표기하는 함수[PHP] 변수 or 배열의 정보를 표기하는 함수
Posted at 2018. 9. 17. 09:58 | Posted in PHP■ 변수나 배열의 값을 문자열로 출력해주는 함수
#01. 변수 or 배열의 값을 사람이 읽기 편하게 출력하는 print_r
# 소스코드
<?php |
# 출력결과
#02. 변수 or 배열 값의 속성정보까지 표기하는 var_dump
# 소스코드
<?php |
# 출력결과
#03. 변수 or 배열 처리가능한 문장열로 출력하는 var_export
# 소스코드
<?php |
# 출력결과
'PHP' 카테고리의 다른 글
[PHP] 배열인지 아닌지를 확인하는 is_array() 함수 (0) | 2019.02.21 |
---|---|
[PHP] DB 입력 or 출력시 따옴표(') 처리하기 (0) | 2018.10.02 |
[PHP] mcrypt 방식 OpenSSL 방식으로 대체하기 (0) | 2018.08.30 |
cURL 연결 함수 (0) | 2018.08.30 |
[PHP] 문장 / 문자열의 의 대소문자를 변환해주는 함수 (0) | 2018.08.30 |
[PHP] mcrypt 방식 OpenSSL 방식으로 대체하기[PHP] mcrypt 방식 OpenSSL 방식으로 대체하기
Posted at 2018. 8. 30. 10:56 | Posted in PHP참고 : https://www.codegrepper.com/code-examples/php/encrypted+and+decrypted+in+php
참고 : https://gracefullight.github.io/2017/07/07/PHP-7-1에서-mcrypt-대체하기/
실제 업무중 API 연결과정정중에 문제가 발생하였다.
보안문제로 mcrypt 방식은 사용하지 않기로 하였기때문에 OpenSSL 방식으로 대체하여 해결 하였고.
그 방법은 아래와 같다.
# 암호화(Encrypt)
mcrypt 방식 |
$output = mcrypt_encrypt (MCRYPT_RIJNDAEL_128, $key, $val, MCRYPT_MODE_CBC, str_repeat (chr (0), 16)); |
/**
* AES256 암호화 *
* @param unknown $key 암호화키
* @param unknown $value 전달받은 데이터
* @return string
*/
$output = openssl_encrypt(pkcs5_unpad($val), "AES-256-CBC", $key, OPENSSL_RAW_DATA, str_repeat(chr(0), 16));
---------------------------------------------------------------------------------------------------------------
$output = openssl_encrypt(pkcs5_unpad($value), "AES-256-CBC", $key, OPENSSL_RAW_DATA, str_repeat(chr(0), 16));
---------------------------------------------------------------------------------------------------------------
/**
* AES256 복호화 *
* @param unknown $key 복호화 키
* @param unknown $value 전달받은 데이터
* @return string
*/
$output = pkcs5_pad(openssl_decrypt($value, "AES-256-CBC", $key, OPENSSL_RAW_DATA, str_repeat(chr(0), 16)));
-----------------------------------------------------------------------------------------------------------------
/**
* 패딩 알고리즘
* mcrypt방식에서 openssl 방식으로 변환을 위한 추가 함수
*/
function pkcs5_pad($text, $blocksize = 16) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text.str_repeat(chr($pad), $pad);
}
function pkcs5_unpad($text) {
$pad = ord($text{strlen($text)-1});
if($pad > strlen($text)) {
return $text;
}
if(!strspn($text, chr($pad), strlen($text) - $pad)) {
return $text;
}
return substr($text, 0, -1 * $pad);
}
'PHP' 카테고리의 다른 글
[PHP] DB 입력 or 출력시 따옴표(') 처리하기 (0) | 2018.10.02 |
---|---|
[PHP] 변수 or 배열의 정보를 표기하는 함수 (0) | 2018.09.17 |
cURL 연결 함수 (0) | 2018.08.30 |
[PHP] 문장 / 문자열의 의 대소문자를 변환해주는 함수 (0) | 2018.08.30 |
[PHP] PHPExcel 서식 변경하기 (2) | 2018.08.29 |