728x90

php 코드의 숫자형, 문자형 변환 과 round 함수에 대해 알아 본다.

 

Numeric to String Conversion: 숫자형을 문자형으로

$numeric_value = 123;
$string_value = (string)$numeric_value; // Typecasting
// or
$string_value = $numeric_value . "";    // Concatenation

 

String to Numeric Conversion: 문자형을 숫자형으로

$string_value = "123";
$integer_value = intval($string_value);  // For integers
$float_value = floatval($string_value);  // For floats
// or
$integer_value = (int)$string_value;    // Typecasting for integers
$float_value = (float)$string_value;    // Typecasting for floats

 

Defining Decimal Precision: 소수잠 자리수

$float_number = 123.4567;
$formatted_number = number_format($float_number, 2); // Formats to 2 decimal places
// Output: 123.46

 

Rounding Modes: 올림, 반올림

  • PHP_ROUND_HALF_UP: Round halves up
  • PHP_ROUND_HALF_DOWN: Round halves down
  • PHP_ROUND_HALF_EVEN: Round halves to even numbers
  • PHP_ROUND_HALF_ODD: Round halves to odd numbers
$number = 10.5;
$rounded_up = round($number, 0, PHP_ROUND_HALF_UP);
$rounded_down = round($number, 0, PHP_ROUND_HALF_DOWN);
echo $rounded_up;   // Output: 11
echo $rounded_down; // Output: 10
728x90
728x90

개인정보 보안이 강화 되다 보니 db 에 데이터를 암호화 해서 보관해야 하는 경우가 있다. md5 는 복호화로 암호를 풀수는 없기 때문에 그럴때는 AES (Advanced Encryption Standard)를 사용 하는 것이 좋다. 

 

<?php
function encrypt($plaintext, $key) {
    $cipher = "aes-256-cbc"; // 암호화 알고리즘 및 모드
    $ivlen = openssl_cipher_iv_length($cipher);
    $iv = openssl_random_pseudo_bytes($ivlen);
    $ciphertext_raw = openssl_encrypt($plaintext, $cipher, $key, OPENSSL_RAW_DATA, $iv);
    $hmac = hash_hmac('sha256', $ciphertext_raw, $key, true); // HMAC을 생성하여 데이터 무결성 보장
    return base64_encode($iv . $hmac . $ciphertext_raw);
}

function decrypt($ciphertext, $key) {
    $cipher = "aes-256-cbc";
    $c = base64_decode($ciphertext);
    $ivlen = openssl_cipher_iv_length($cipher);
    $iv = substr($c, 0, $ivlen);
    $hmac = substr($c, $ivlen, $sha2len = 32);
    $ciphertext_raw = substr($c, $ivlen + $sha2len);
    $original_plaintext = openssl_decrypt($ciphertext_raw, $cipher, $key, OPENSSL_RAW_DATA, $iv);
    $calcmac = hash_hmac('sha256', $ciphertext_raw, $key, true);
    if (hash_equals($hmac, $calcmac)) { // HMAC 일치 확인
        return $original_plaintext;
    }
    return false; // HMAC이 일치하지 않으면 복호화 실패
}

// 사용 예제
$key = "my_secret_key"; // 암호화에 사용할 키
$plaintext = "Hello, world!"; // 암호화할 문자열

// 암호화
$ciphertext = encrypt($plaintext, $key);
echo "암호화된 문자열: " . $ciphertext . "\n";

// 복호화
$decrypted_text = decrypt($ciphertext, $key);
if ($decrypted_text !== false) {
    echo "복호화된 문자열: " . $decrypted_text . "\n";
} else {
    echo "복호화 실패\n";
}
?>
728x90
728x90

sass 로 스타일 작업을 많이 하는데 php 에서는 바로 link 를 할수가 없다. css 파일로 컴파일 후 link 해야 하는데 php 명령어로도 컴파일이 가능하다. 아래 명령어로 해당 경로에 css 파일을 생성하게끔 한다면 php 코드에서도 sass 파일을 사용 할수 있다. 

<?php
// SASS 파일의 경로
$sass_file = 'styles.scss';

// 컴파일된 CSS 파일의 경로
$css_file = 'styles.css';

// SASS 파일을 CSS로 컴파일하는 명령
$command = "sass $sass_file $css_file";

// 명령 실행
$output = shell_exec($command);

// 결과 출력
echo $output;
?>
728x90
728x90

특정 div 일부만 이미지로 저장하고 싶다면 html2cnvas  스크립트로 가능하다. pdf 로 다운로드는 구현이 조금 까다롭지만 스크립트로는 아래와 같이 코드 몇줄만 적으면 다운로드 파일 이름도 정의할 수 있고 jpg 파일로 저장 할수 있다.

<div class="com_btn_wrap right"> 
  <button class="com_btn l point btn_download" type="button" onclick="downloadImage()"><i class="icon svg_icon before icon_download white"></i>다운로드</button>
</div>

<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<script>
  function downloadImage() {
    // Get the target div
    var divToCapture = document.getElementById('mindScoreBody');

    // Use html2canvas to capture the div as an image
    html2canvas(divToCapture).then(function (canvas) {
      // Convert the canvas to a data URL
      var imageData = canvas.toDataURL('image/jpeg');

      // Create a link element and trigger a download
      var link = document.createElement('a');
      link.href = imageData;
      link.download = 'output.jpg';
      link.click();
    });
  }
</script>
728x90
728x90

플라스틱과 비닐 쓰레기로 이슈가 되면서 액체로 된 세제, 치약 등이 고체로 나오기 시작했는데 요즘은 하나 둘 그 범위가 넓어 지고 있는거 같다. 먹거리에서도 육수 같은 것도 코인 육수가 나오더니 우연히 검색하다 보니 올리브유도 캡슐처럼 작게 포장된게 있는게 아닌가. 마켓컬리에서 발견했는데 1인 가구라면 기름을 많이 소비 하지 않는다면 한병 사면 늘 기간내에 다 못먹고 버린 기억이 있다면 추천하고 싶은 제품이다. 

올리브유 캡슐 미니 올리바

 

한번에 사용 할수 있는 양이 계란 후라이를 기준으로 하면 3번 정도 할수 있을 법한 용량이라 볶음밥에는 반정도 사용이 가능하고 간단하게 볶거나 샐러드 위에 드레싱 처럼 뿌려 먹기에 하루 이틀 내에 한개를 사용하기에 굉장히 좋다. 플라스틱 재질이라 조금 더 재사용이 잘 되는 재질이면 더 좋긴 하겠지만 큰 플라스틱병보다는 왠지 조금 더 쓰레기가 작게 나오는 느낌이기도 하고 나 처럼 많이 사용하지 않는 사람이라면 1년 정도 먹어도 될법한 양이라 좋은거 같다. 

 

 

올리브유 캡슐

아무래도 밀페가 되어 있다 보니 올리브유도 굉장히 신선하고 말이다. 이렇게 캡슐화 하는 소재를 조금 더 환경에 해가 되지 않는 소재로 개발이 된다면 좋을거 같다. 

올리브유 캡슐

아토 올인원 캡슐 세제

세제는 고체 세제만 사용해 보다가 캡슐 세제는 처음 사보았는데 고체세제의 단점인 조각이 남는 경우가 없어서 조금 더 편리하지만 비닐 포장이 조금 더 큰점은 개선 되면 좋을거 같다. 생각보다 라벤더 향은 조금 진한편이지만 세탁물에서 약간의 향이 나는걸 좋아 한다면 섬유유연제 까지 같이 포함되어 있는 캡슐 하나만 넣으면 해결 되는 캡슐세제 추천한다. 

 

이렇게 사용하다 보면 액체 세제는 굉장히 무겁게 느껴지고 배송 과정에서도 배달하는 사람도 힘들고 옮기는 이도 힘들고 친구네는 한번은 세제가 안에서 터졌는지 집앞에 세제가 많이 흘러 나와 있었어서 치우느라 고생 했다는 애기를 들었다. 가격 때문에 많은 사람들이 아직 캡슐 세제는 비싸다고 생각 하는데 한알만 넣으면 되는 편리함과 한알에 농충되어 있기 때문에 세척도 잘 되는 편이라 나는 금액이 그리 크게 비싸다고 생각이 들진 않는다. 

 

아마 한번 사용해본 사람이 다시 액체 세제를 구입할거 같진 않다. 가루 세제를 쓰다가 액체 세제를 쓰는것 처럼 세제도 점점 캡슐화가 되고 있는거 같다. 

올인원 캡슐 세제

고체 세탁세제 자주 동구밭

동구밭은 고체세제, 고체비누 등이 예전 부터 유명했는데 이마트에서는 자주와 협력을 하는지 샴푸바 고체 비누도 섬유유연제, 세탁세제, 과탄산소다 까지 고체 세제도 다양하게 구매해 볼 수 있다. 배송과정에서 포장도 가장 간소하다. 이마트 쓱배송을 이용하면 다른 포장 하나 없이 쓱 배송 종이 포장만 오니 말이다. 

 

고체 세제는 세탁 할때 세탁세제 한알 섬유유연제 한알 을 각각 동시에 빨래 밑에 넣어 주면 세탁기가 돌아 가면서 세제가 모두 녹으며 세탁이 된다. 과탄산 소다도 들어 있기 때문에 빨래가 조금 더 깨끗하게 되는 느낌이 있다. 

 

과탄산소다는 주로 행주나 속옷 같은 빨래를 삶아야 할 경우 냄비에 퐁당 한알을 넣고 보글 보글 끓여 주면 하얗게 잘 세척도 되고 표백도 된다. 따뜻한 물에 더 잘 녹으니 참고 하면 좋겠다. 

고체 세탁세제

무거운 세제를 덜어 쓰는것보다 훨씬 편하니 한번쯤은 사보는 것도 좋은거 같다. 배송중 파손될 염려도 적으니 말이다. 세상은 점점 더 간소화 되고 있는 듯 하다. 

728x90
728x90

전주식 콩나물국밥은 수란이 나오는걸로 유명한데 수란은 없지만 집에서도 가게에서 사먹는거 같은 콩나물국밥을 먹고 싶을때 1인가구의 비상 반찬으로 괜찮은거 같다. 2인분 용량인데 콩나물은 한번 덜어 두었다가 한번 더 끓여서 먹을 수 있으니 말이다. 

마이세프 밀키트 콩나물국밥

포장 상태

밀키트는 포장도 간소해야 먹고 나서 치우기도 편한데 콩나물 때문인지 큰 플라스틱 통이 있긴 하지만 그 부분을 제외하면 나머지 포장은 간소한 편이다. 콩나물, 땡초+대파, 오징어, 육수, 김 모두 얇은 비닐로 포장되어 있고 땡초도 하나 들어 있는점은 좋은거 같다. 
 
포장지에는 10MIN 으로 나와 있지만 오징어와 콩나물은 씻어야 해서 약간의 번거로움은 있다. 
 

소비기한

소비기한은 냉장상태로 콩나물과 오징어 생물이 있어서  일주일정도로 그리 길지 않은점은 참고해야 한다. 그래도 냉동 오징어가 아니어서 조금 더 신선한 부분이 있고 콩나물과 대파, 땡초도 신선한 상태여서 좋은거 같다. 콩나물국밥 할려고 콩나물 사면 시장에서는 엄청 많이 줘서 다 먹기 못하기도 하는데 요렇게 소포장으로 되어 있는 점은 좋다. 

해장 콩나물국밥

조리방법

밀키트의 장점은 조리방법이 상세히 잘 나와 있다. 나는 조금 다르게 변형해서 먹었지만 설명서에는 콩나물과 오징어만 한번 씻고 모두 한냄비에 물 800ml 를 넣고 10분간 센불에서 끓이라고 나와 있다. 
 
1인분만 먹기 위해서는 물 800ml 는 그대로 넣고 콩나물 반만 조금 덜어 둔다. 그럼 육수는 그대로 있으니 콩나물만 추가해서 한번 더 먹으면 된다. 땡초도 바로 넣는것 보다 먹기 직전에 다진 땡초를 조금 올려 먹는것이 더 매콤하고 맛있기에 요것은 따로 다져 준다. 다진 마늘도 있으면 더 맛있을거 같고 진주식 콩나물 국밥에 빠질 수 없는 계란 수란은 국자에 해보려 했는데 국자가 작아서 잘 되지 않았지만 수란도 하나 같이 해서 먹으면 가게에서 먹는것과 비슷한 맛이 난다. 
 
수란은 스텐 그릇에 참기름을 먼저 넣고 계란을 그대로 깨어 넣어 끓는 물에서 계란흰자가 다 익을 정도로만 익혀주면 되는데 그 타이밍을 맞추기는 쉽지 않다. 
 
나는 콩나물이 덜익는걸 별로 좋아 하지 않아서 콩나물, 오징어, 육수를 넣고 뚜껑을 덥고 10분을 끓였는데 8분쯤 되니 물이 끓기 시작했고 1~2분 동안은 뚜껑을 열고 보글보글 더 끓여 주었다. 혹시 오징어가 덜 익었을까봐 2분을 더 끓였더니 조금 많이 익긴했지만 질기지 않고 오징어도 맛있었고 무엇보다 국물이 시원하니 맛있었다. 

마이세프 콩나물국밥

전주식 콩나물국밥 먹는 방법

보통 가게에 가면 수란을 먼저 주시고 콩나물국밥이 나온다. 수란에는 참기름이 둘러져 있기에 수란만 먹어도 맛있지만 부산에서 콩나물 국밥은 밥이 콩나물 밑에 깔려 있기 때문에 뚝배기에서 보글보글 끓여진 밥의 온도는 상당히 높다. 주인장은 수란을 내어 주시며 
 
" 계란 먼저 드시면 되는데 덜익은거 잘 못 드시면 여기에 밥 조금 올려서 드셔도 되고 국물 몇숟가락 더해서 김가루 올려 드시면 맛있어요
 
라고 안내를 해주신다. 안익은 노른자의 고소함을 좋아 한다면 국물만 몇숟가락 더해 수란을 먼저 참기름과 김가루로 섞어서 먹으면 고소하니 맛있고 익은 계란만 좋아 한다면 밥과 콩나물을 한숟가락 덜어 그대로 수란과 비벼 먹어도 맛있다. 그러고 깔끔한 콩나물 국밥의 국물을 먹으면 내 위장도 왠지 청소가 되는거 같고 콩나물의 시원함에 간의 피로도 풀리는거 같은 느낌이든다. 

마이세프 콩나물국밥

어릴땐 요 콩나물 대가리의 딱딱함이 참 싫었는데 요즘은 요 아삭함도 콩나물의 아삭함도 콩나물이 주는 국물의 시원함도 좋은거 같다. 특히 오늘 처럼 겨울비가 오는 날이면 더 맛있게 느껴지는거 같다. 
마켓컬리에서는 요렇게 주문한걸 새벽에 받아 볼 수 있으니 점심때 바로 해먹을 수 있어서 좋다. 포장만 조금 더 간소해 진다면 더 좋겠지만 말이다. 8천원 정도의 금액에 2끼를 해결 할수 있으니 식당 처럼 밑반찬이 나오는건 아니지만 그래도 신선한 콩나물에 육수가 꽤 맛있어서 한번씩 사먹기에 좋은거 같다. 오징어를 이만큼만 사기도 어려운데 냉장오징어도 제법 들어 있으니 말이다. 
 
단지 제대로 먹고 싶다면 계란과 다진마늘, 새우젓, 고추가루 가 있다면 조금 더 가게 느낌의 콩나물국밥 맛이 날거 같다. 


떡국

파는 소스는 국물이 간간하기에 물을 조금 더 부으면 한끼는 떡국으로도 먹을 수 있다.

728x90
728x90

마켓컬리에는 밀키트나 디저트가 맛있는게 많고 새벽에 배송이 되어서 다음날 아침으로 간단하게 먹기에도 좋다.

샌드위치는 바로 먹어야 하나 유통기한이 궁금 했는데 생각보다 3일 정도 여유 있게 보내주는거 같다. 냉장보관 하면 내일 먹어도 되고 모레 먹어도 되는 유통기한이다.

홍루이젠 샌드위치

포장도 종이상자에 간단하게 되어 있어서 쓰레기도 조금 적게 나오는거 같다. 대파 스프레드를 좋아 하는 편이라 나는 파 크림치즈로 담아 왔는데 기대보다 파 크림치즈의 양은 그리 많지가 않았다.

홍루이젠 파 크림 샌드위치

한손에 들어 오는 사이즈라 아침에는 한조각 먹기에 좋은거 같고 작은 컵라면 먹을때 간식 처럼 먹기에도 좋은거 같다.  베이컨은 조각이 작은데 씹는 식감은 다른 재료에 비해 조금 딱딱한 식감이 있어서 중간 중간 음 뭐지 하며 씹게 되기도 한다. 살짝 데워 먹으면 치즈가 빵에 스며 들어 조금 더 맛있는거 같고 빵도 촉촉하고 맛있지만 신선한 대파의 향은 그리 많이 나지 않는다. 아무래도 대량 생산이다 보니 신선한 대파를 그자리에서 바로 썰어서 만든 크림과는 차이가 있는 듯 하다.

대파 크림치즈는 로컬에서 가까운 집 근처 매장에서 당일 만든 신선한 제품으로 먹는 것이 더 맛있는 듯 하다.

프레시 파 베이컨 크림치즈 샌드위치

대학교때 점심시간이 짧을때 편의점에서 자주 먹던 컵라면과 샌드위치의 조합 파 크림치즈 샌드위치는 조금 담백한 맛이라 매운 진라면과 굉장히 찰떡이다. 매운 꼬들꼬들한 컵라면 한입에 크림치즈 샌드위치 한입을 먹으면 입안이 조금 진정도 되면서 라면이 더 맛있게 느껴 지기도 하고 배도 든든해 진다. 요 조합은 추천 한다. 가볍게 간식 처럼 먹기에는 괜찮은거 같고 소비기한도 3일이 되어서 한조각씩 나눠 먹어도 괜찮은거 같다.

기대보다 대파향은 덜 낫지만 다른 종류의 샌드위치도 먹어 보고픈 맛이다.

홍루이젠 샌드위치

도제 딸기산도는 겨울에만 나오는 한정메뉴로 딸기가 보기에도 굉장히 신선한데 직접 먹어보니 역시나 딸기가 맛있다. 크림이 아닌 리코타치즈여서 더 담백하게 많이 달지 않으면서 맛있는 맛이다.

도제 딸기산도

딸기가 뚜껑에만 있는줄 알았는데 안에 하나씩 더 있어서 딸기맛이 많이 나서 좋고 빵도 부드럽다. 약간의 단점이라면 아무래도 배송시간이 있으니 빵의 밑 부분은 조금 더 촉촉하다.

도제 딸기산도

그리고 생각보다 과대 포장이다. 아마 딸기가 찌그러질 염려에서 이런 플라스틱포장을 한거 같은데 요즘 플라스틱포장에서 종이상자로 바뀌는 추세인데 요 부분은 좀 아쉽다. 홍루이젠 처럼 얇은 종이상자여도 딸기의 모양은 크게 흐틀어질거 같지 않은데 말이다.

도제 딸기산도

딸기산도에 맛은 무척이나 맛있었지만 다음 주문에서는 포장에서 조금 주문이 망설여 질거 같다.

도제 딸기 산도 역시 소비기한은 3일 정도 여유가 있어서 그 부분은 좋은거 같다.

마켓컬리는 종종 할인쿠폰을 매달 마지막주에 많이 주는 편이라 쿠폰을 받고 주문하면 조금 더 저렴하게 살수 있다.  후기를 쓰면 적립금도 50원 100원 베스트후기에 당첨되면 5000원도 컬리 적립금으로 쌓아주니 후기도 적어 보는 것이 좋다.

728x90
728x90

form 태그를 넘길때 $_POST 로 받는 다고 가정 할때 값이 없을때 오류가 날 수 있으므로 존재 여부를 먼저 isset 로 체크해 준다. 다중 체크박스를 ques_1[] 로 선언 했을 경우 아래 예제 처럼 || 로 값을 모두 implode 로 합쳐서 db에 저장하고 explode 로 배열로 반환 받을 수 있다. 

$num = 1; // 예제로 1로 설정, 실제로는 필요한 값에 따라 변경

if (isset($_POST["ques_" . $num]) && $_POST["ques_" . $num] !== "") {
    $selectedOptions = $_POST["ques_" . $num];
    $as_name = implode('||', $selectedOptions);
} else {
    // 선택된 값이 없을 때의 처리
    $as_name = ""; // 또는 다른 기본 값으로 설정
}

 

$as_name = "value1||value2||value3";

// ||로 구분된 문자열을 배열로 변환
$selectedOptions = explode('||', $as_name);

// 각 값에 대한 처리
foreach ($selectedOptions as $option) {
    echo "Value: $option\n";
}
728x90
728x90

php 작업 중 db 에 암호화 해서 데이터를 넣어야 할 경우 다시 복호화 해서 사용자 화면에는 보여져야 하는 경우 AES 예제로 암호화 키 값을 넣어서 만들수 있는 예제 이다. 

 

$encryptionKey 값에 임의의 값을 넣어서 사용하면 된다. 

 

<?php

// 암호화 키 (16, 24 또는 32 바이트 여야 함)
$encryptionKey = 'your_secret_key';

// 암호화할 데이터
$dataToEncrypt = 'Hello, this is a secret message!';

// 암호화
$encryptedData = encryptData($dataToEncrypt, $encryptionKey);
echo 'Encrypted Data: ' . $encryptedData . "\n";

// 복호화
$decryptedData = decryptData($encryptedData, $encryptionKey);
echo 'Decrypted Data: ' . $decryptedData . "\n";

function encryptData($data, $key) {
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
    return base64_encode($iv . $encrypted);
}

function decryptData($data, $key) {
    $data = base64_decode($data);
    $ivLength = openssl_cipher_iv_length('aes-256-cbc');
    $iv = substr($data, 0, $ivLength);
    $encrypted = substr($data, $ivLength);
    return openssl_decrypt($encrypted, 'aes-256-cbc', $key, 0, $iv);
}

?>

 

함수로 만들어 두면 변환해야 하는 데이터와 key 만 주면 되기에 조금 더 편하게 이용해 볼 수 있다. 

728x90
728x90

부산은 어묵이 맛있고 물떡과 어묵을 파는 곳도 많이 있다. 그 중 유부주머니는 당면이 가득 들어가 특히 더 맛있는데 요걸 만들려면 시간도 많이 소요 되는데 요즘 밀키트는 굉장히 간편하게 잘 나온다. 맛도 괜찮아서 2~3명이 나눠 먹기에 좋은거 같다.

유부주머니 전골

단순히 유뷰주머니와 어묵만 있는게 아니라 우동면도 있고 물떡도 2개나 있어서 점심이나 저녁으로 한끼로 먹기에도 괜찮은거 같다.

유부주머니 전골

이렇게 대량 판매 되는 건 떡이 맛이 없을거라 생각했는데 쌀떡의 말랑 말랑 함이 굉장히 쫀득하게 맛있다. 육수도 맛있고 말이다. 그런데 육수는 조금 단맛이 많이 나기도 해서 식초를 살짝 더 넣어 먹으니 깔끔하게 맛있는거 같다. 매콤 함을 좋아 한다면 고추가루나 청양고추를 추가 하면 더 칼칼하게 맛있을거 같은 맛이다.

유부주머니 전골

어묵의 종류도 다양하게 있고 어묵도 맛있는 어묵이 많다.유부주머니도 당면과 함께 맛있고 말이다.

유부주머니 전골

3명 정도 나눠 먹기에 좋고 땡초, 대파 등이 더 있으면 더 시원하게 먹을 수 있는거 같다.

유부주머니 전골

마켓컬리에서 주문하면 샛별배송으로 다음날 바로 받아 볼 수 있고 조리하는 법도 모두 넣고 끓이면 되어서 쉬운거 같다. 유부주머니 먹고 싶다면 맛있는 물떡도 먹고 싶다면 3명 정도 나눠 먹을 분량을 찾고 있다면 추천한다.

728x90

+ Recent posts