iframe 높이 꽉차게 하기

반응형

간혹 iframe 을 사용하면 가로는 100% 가 되지 만 높이가 100% 로 되지 않는 경우가 있습니다.

이 경우 아래와 같이 vh 단위로 변경하여 적용해주면 됩니다.

주의 할것은 가로 길이는 그대로 100% 를 유지해주세요.


<iframe src="notice.php" frameborder="0" style="display:block; width:100%; height: 100vh"></iframe>



반응형

댓글()

PDO 를 이용해 html 코드를 MySQL 로 입력하기

프로그래밍/PHP|2020. 7. 2. 10:17
반응형

PDO 를 사용하면 html 코드를 쉽게 DB 에 insert 할 수 있습니다.


최근 나오는 PHP 버전의 대부분은 PDO 사용이 가능 하므로

아래 예제가 통하지 않을 경우에만 버전 또는 모듈 사용이 가능한지 체크해보세요.


<form> 태그로 넘겨받은 페이지에서 DB 로 insert 하는 방법 입니다.



insert.php 파일로 입력


<?

$register_time = date("Y-m-d H:i:s");


$mysql_hostname = '127.0.0.1';

$mysql_username = 'sysdocu';

$mysql_password = '12345678';

$mysql_database = 'sysdocu';

$mysql_port = '3306';

$mysql_charset = 'utf8';

$dsn = 'mysql:host='.$mysql_hostname.';dbname='.$mysql_database.';port='.$mysql_port.';charset='.$mysql_charset;

try{

    $pdo = new PDO($dsn, $mysql_username, $mysql_password);

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

    echo 'Connect failed : ' . $e->getMessage() . '';

}


$sql = "INSERT INTO notice (title, body, attach, register_time) VALUES (:title, :content, :attach, :register_time)";

$stmh = $pdo->prepare($sql);

$stmh->bindValue(':title', $_POST['title']);

$stmh->bindValue(':content', $_POST['content']);

$stmh->bindValue(':attach', $_POST['attach']);

$stmh->bindValue(':register_time', $register_time);

$stmh->execute();

?>



이후 데이터를 불러올 때는 아래와 같이 echo 로 출력하면 됩니다.


echo $row['content'];




반응형

댓글()

CLI 에서 curl 명령어로 파일 보내고 php 에서 받기

프로그래밍/PHP|2020. 6. 30. 14:27
반응형

CLI 에서 curl 로 파일 보내는 방법은 아래와 같습니다.


1. curl 로 파일 전송


# curl -F "file=@/home/sysdocu/profile.png" https://sysdocu.tistory.com/upload.php



2. php 로 수신


upload.php


<?php

$uploaddir = "/var/www/html/tmp/"; // 해당 디렉토리는 업로드 권한이 있어야 함

$uploadfile = $uploaddir . basename($_FILES['file']['name']);


if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {

    echo "업로드 성공\n";

} else {

    echo "업로드 실패\n";

}


echo "결과 보기<br>";

print_r($_FILES);

?> 


* 주의 : 보내고 받는 변수명이 동일해야 합니다. (위에서는 file 사용)



반응형

댓글()

MySQL 에서 가져온 최근 데이터를 오래된 순서대로 정렬하기

프로그래밍/PHP|2020. 6. 30. 08:49
반응형

DB 테이블 (fruit) 에 가령 아래와 같은 데이터가 존재한다고 치면

최신데이터 3개를 가져와야 할 일이 생겼습니다.

단, 순서는 유지하면서.


name | fruit

--------------------

CDH      파인애플

JJE        바나나

CHY       딸기

CJW      포도

JOY       사과


MySQL 에서 가져오는 방법으로 아래와 같은 쿼리가 주로 사용됩니다.

하지만 최신 데이터를 가져오기 위해 사용한 DESC 때문에 순서는 뒤바뀌게 되므로

array_reverse 함수를 이용해 간단히 배열에 넣은 값을 역순으로 재정렬 하면 됩니다.


$query = "SELECT * FROM fruit ORDER BY no DESC LIMIT 3";


if ($result = mysqli_query($link, $query)) {

    $Arrays = []; // 배열 선언

    while ($row = mysqli_fetch_row($result)) { 

        $Arrays["$row[0]"] = $row[1]; // 이름에 과일 넣기

    }


    // 배열 역순 정렬

    $ArrayHour = array_reverse($ArrayHour);

}



반응형

댓글()

PHP 배열 사용하기

프로그래밍/PHP|2020. 6. 26. 11:12
반응형

출처: https://pikabu.tistory.com/83 [피카부]


배열이란

배열은 '여러개의 값을 담아 놓는 상자'라고 생각하시면 됩니다. 배열로 선언하면 값이 없어도 배열이 됩니다. 또한 배열 선언과 동시에 값을 대입하는 것도 가능합니다.

$days = []; // 빈 배열 $days 선언

$family = ['dad', 'mom', 'son', 'daughter']; // 값이 있는 배열 $family 선언

배열의 첨자

배열 요소의 위치를 첨자라고 합니다. 첨자는 보통 연속되는 값으로 0,1,2..로 이어집니다. 이러한 첨자로 배열에 바로 접근이 가능하게 됩니다.

// 첨자는 0, 1, 2, 3
$family = ['dad', 'mom', 'son', 'daughter'];

echo $family[0]; // 'dad'

echo $family[3]; // 'daughter'

연상 배열

첨자 대신 요소의 이름(key)을 지정하여 접근 할 수도 있습니다.

$family_name = [
    'dad' => 'Bob',
    'mom' => 'Jessy',
    'son' => 'James',
    'daughter' => 'Emily'
];

echo $family_name['dad']; // 'Bob'

요소의 추가

마지막에 요소를 추가

배열의 제일 끝에 새로운 요소를 추가합니다.

//첨자 배열의 경우 
$family = ['dad', 'mom', 'son', 'daughter'];

$family[] = 'puppy'; // 배열의 제일 끝에 요소를 추가

echo $family[4]; // 'puppy'


// 연상 배열의 경우
$family_name = [
    'dad' => 'Bob',
    'mom' => 'Jessy',
    'son' => 'James',
    'daughter' => 'Emily'
];

$family_name['puppy'] = 'John';

echo $family_name['puppy']; // 'John'

가장 첫 위치에 요소를 추가

배열의 가장 첫 위치에 요소를 추가할 경우는 array_unshift()를 사용합니다.

$family = ['dad', 'mom', 'son', 'daughter'];

array_unshift($family, 'grandma');

// $familyは['grandma', 'dad', 'mom', 'son', 'daughter'] 로 됩니다.

임의의 위치 요소를 추가

배열의 임의의 위치에 요소를 끼워넣습니다. array_splice()는 원래 요소를 치환하는 함수이지만, 제3인수에 0을 지정하면 요소를 지우지 않고 끼워넣을 수 있습니다.

$family = ['dad', 'mom', 'son'];

// $family[2]의 앞에'uncle'를 추가
array_splice($family, 2, 0, 'uncle');

// ['dad', 'mom', 'uncle', 'son']

복수의 요소를 추가

array_push() 함수를 사용하여 한번에 여러개의 요소를 추가합니다.

$family = ['dad', 'mom', 'son'];
array_push($family, 'puppy', 'citty');

// ['dad', 'mom', 'son', 'puppy', 'citty']

array_merge() 함수를 사용하면 배열과 배열을 결합합니다.

$family = ['dad', 'mom', 'son'];
$add_member = ['grandma', 'grandpa'];

$new_family = array_merge($add_member, $family);

// $new_family는 ['grandma', 'grandpa', 'dad', 'mom', 'son']
//array_merge는 원래의 배열 $family에 영향을 주지 않습니다.

다차원 배열

배열의 요소에도 배열 값을 가지게 할 수 있습니다.

$families = [
    [
        'dad', 'mom', 'son'
    ],
    [
        'dad', 'mom', 'daughter'
    ]
];

echo $families[0][0]; // 'dad'

echo $families[1][2]; // 'daughter'

// $families['Smith']와 $families['Williams']는 각각 배열입니다.

물론 연상 배열을 다차원 배열로 할 수도 있습니다.

$families = [
    'Smith' => [
        'dad' => 'Bob',
        'mom' => 'Jessy',
        'son' => 'James'
    ],
    'Williams' => [
        'dad' => 'Michael',
        'mom' => 'Jessy',
        'daughter' => 'Emily'
    ]
];

echo $families['Smith']['dad']; // 'Bob'

여기서는 $families['Smith']['mom']의 'Jessy'와 $families['Williams']['mom']의 'Jessy'는 문자열은 같지만 다른 배열입니다. 즉, 스미스 가문의 제시와 윌리엄 가문의 제시로 보시면 됩니다. 프로그래밍 초보 시절에는 많이 혼동되는 부분이지만 숙련되면 당연하게 생각되어질 것입니다.

배열의 삭제

배열의 삭제는 따로 정리해두었으니 참고 바로가기

마치며

PHP의 경우는 첨자 배열과 연상 배열이 같은 배열형태로 취급됩니다. 첨자 배열과 연상 배열을 합치거나 루프 구문에서 별 다른 신경쓸 것 없이 사용이 가능합니다. 하지만 다른 개발 언어에서는 전혀 다른 취급을 하는 경우도 있으니 주의하시기 바랍니다.



출처: https://pikabu.tistory.com/83 [피카부]


반응형

댓글()

소수점 두자리에서 자르기, 소수점 세자리에서 반올림하기

프로그래밍/BASH SHELL|2020. 6. 25. 12:18
반응형

1. 자르기


[ 명령 ]

# echo "scale=2;1.16628996273/1" |bc -l


[ 결과 ]

1.16


여기에서 scale=2 부분이 소수점 두 자리까지 출력을 한다는 의미 입니다.

그리고 1.16628996273/1 는 계산 식인데, 숫자만으로 표현하면 처리가 되지 않으니

꼭 계산식으로 해야 해서 나누기 1을 해준 것입니다.



2. 반올림 하기


[ 명령 ]

# echo $(printf %.2f 1.16628996273)


[ 결과 ]

1.17



반응형

댓글()

파일을 첫번째 필드를 기준으로 중복제거하여 전체필드 출력하기

프로그래밍/BASH SHELL|2020. 6. 25. 10:43
반응형

[출처] https://m.blog.naver.com/PostView.nhn?blogId=nativekim&logNo=220376409687


유닉스, 리눅스에서도 파일을 중복제거하는 기능이 있다.

 

보통 sort한후 uniq 명령어로 중복제거를 하는 방법은 많이 알고 있지만 첫번째 필드를 기준으로 중복제거를 하고

 

출력은 모두 필드가 나오도록 하는건 모르는 사람이 많다.

 

명령어의 옵션을 활용을 하면 이런 작업을 할수가 있다.

 

다음과 같은 내용의 a.txt 파일 있다.

 # cat > a.txt
11 aa xtp1
11 ab xtp2
11 ac xtp4
11 ad xtp4
11 af xtp2
22 bb xtp5
22 bp xtp5
22 bs xtp1

 

리눅스에서 uniq 옵션중에 -w 옵션이 있다. 처음부터 몇바이트가 중복기준으로 삼을건지.. -w 2 옵션을 쓰면 2바이트만 기준으로

중복을 제거한다.

cat a.txt | sort | uniq -w 2

결과

11 aa xtp1
22 bb xtp5

 

리눅스에서는 uniq옵션에 -w 옵션이 존재하지만 uniq에는 존재하지 않는것 같다. (확실치는 않음.. 모두 테스트못했음--;)

그래서 awk 구문을 이용하여 첫번째 필드를 기준으로 중복제거한후 uniq하게 모든 필드가 나오도록 로직을 만들어봤다.

 

cat a.txt |sort | awk '{if($1 != tmp1) { {tmp1 = $1} print $0 }} '

결과)

11 aa xtp1
22 bb xtp5

 

 다른 방법으로는

 

 cat a.txt |awk '!a[$1]++'

 

첫번째와 두번째필드를 모두 기준으로 하고 싶다면 다음과 같이 하면 된다.

 

 cat a.txt |awk '!a[$1,$2]++'

 

알아두면 좋을 옵션은 uniq -u 와 uniq -d 이다.

-u는 유닉스한 데이터만 출력하고 -d 는 유닉스하지 않은 데이터를 출력한다.

 

# cat > b.txt
uniq option -u check!

uniq option -d check!

uniq option -d check!

uniq option -d check!

 

전체중에 uniq한 데이터만 출력

 cat b.txt | sort | uniq -u

uniq option -u check!

 

전체중에 중복이 있는것만 출력(출력할때 uniq하게 출력됨)

 cat b.txt | sort | uniq -d

uniq option -d check!



[출처] https://m.blog.naver.com/PostView.nhn?blogId=nativekim&logNo=220376409687


반응형

댓글()

table tr td 에 링크걸기

반응형

<td onClick="location.href='?page=home'" style="cursor:pointer;">


onClick 에는 연결될 페이지,

style 에는 마우스 올려 놓을때 보여질 커서 모양입니다.



반응형

댓글()

html table <td> 에 그라데이션 배경 주기

반응형

<td style="background: linear-gradient(to right, #ef2700, #f6b368);"></td>


to right 는 to left 등으로 변경이 가능하고,

#ef2700 부터 #f6b368 로 색상이 바뀌어 간다는 뜻입니다.



반응형

댓글()

html 테이블 내용에 따라 가로 사이즈가 늘어나지 않게하기

반응형

텍스트 가로 사이즈가 길어서 테이블이 정해놓은 가로 사이즈가 늘어날 때가 있습니다.

이 경우 <td> 속성에 아래와 같이 옵션을 주면 텍스트 내용이 길 경우 줄바꿈으로 표시가 됩니다.


<td style='word-break:break-all'>



반응형

댓글()

on,off 스위치 만들기 (토글버튼: Togglebutton)

반응형

<html>

<head>


<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>


<style>

.switch {

  position: relative;

  display: inline-block;

  width: 60px;

  height: 34px;

  vertical-align:middle;

}


/* Hide default HTML checkbox */

.switch input {display:none;}


/* The slider */

.slider {

  position: absolute;

  cursor: pointer;

  top: 0;

  left: 0;

  right: 0;

  bottom: 0;

  background-color: #ccc;

  -webkit-transition: .4s;

  transition: .4s;

}


.slider:before {

  position: absolute;

  content: "";

  height: 26px;

  width: 26px;

  left: 4px;

  bottom: 4px;

  background-color: white;

  -webkit-transition: .4s;

  transition: .4s;

}


input:checked + .slider {

  background-color: #2196F3;

}


input:focus + .slider {

  box-shadow: 0 0 1px #2196F3;

}


input:checked + .slider:before {

  -webkit-transform: translateX(26px);

  -ms-transform: translateX(26px);

  transform: translateX(26px);

}


/* Rounded sliders */

.slider.round {

  border-radius: 34px;

}


.slider.round:before {

  border-radius: 50%;

}


p {

margin:0px;

display:inline-block;

font-size:15px;

font-weight:bold;

}

</style>


</head>


<body>


<label class="switch">

<input type="checkbox">

<span class="slider round"></span>

</label>


<p>OFF</p>

<p style="display:none;">ON</p>


<script>

var check = $("input[type='checkbox']");

check.click(function(){

$("p").toggle();

});

</script>


</body>

</html>



[출처] https://imivory.tistory.com/15

반응형

댓글()