using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


namespace ConsoleApplication2

{

    class Program

    {

        static void Main(string[] args)

        {


            Console.WriteLine("Hello 월드!");

            Console.WriteLine("Hello 월드!");

            Console.WriteLine("Hello 월드!");


            Console.Write("Hello");

            Console.Write("Hello");

            Console.Write("Hello");

        }

    }

}


WriteLine() 함수도 텍스트를 출력하는 함수이고,

Write() 함수 역시 동일한 함수이다.


하지만, 차이점은

WriteLine() 함수는 출력한 뒤에 개행이 이뤄지지만,

Write() 함수의 경우 개행되지 않는다.


따라서, 위 예제를 실행하면 결과는 다음과 같다.




Posted by sungho88
,

날짜를 표기하기 위해서는  date() 함수를 사용하면 간단하게 날짜를 구할 수 있다.

보통 $date = date('Y-m-d H:i:s'); 이렇게 하면 모두 출력된다.

또한 2017-04-04가 아니라,  2017.04.04로 표시하고 싶다면 쉽다.


- 대신 .으로 대체해주면 된다.


$abcd = date('Y.m.d H:i:s');

이러면,

2017.04.04 11:30:20     로 표시된다.

그리고 날짜만 필요하다면, 둘로 쪼개서 사용하면된다.


$datetime = explode(' ', $abcd);     // ' ' 공백이 구분점이 되어 배열에 저장된다.

$date = $datetime[0];                  // 첫 번째 요소가 날짜        

$time = $datetime[1];                  // 두 번째 요소가 시간



이렇게 하면 시간과 날짜를 나누어 사용할 수 있다.


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

추가적으로 2017.07.01 11:00:00  형식말고,  - 이나 /로 하고 싶다면?

쉽다.

그냥 . 대신 - 나 /를 넣어주면 된다.


<!DOCTYPE html>
<html>
<body>

<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>"
?>


</body>
</html>


결과는 


Today is 2017/06/30
Today is 2017.06.30
Today is 2017-06-30 


https://www.w3schools.com/php/php_date.asp


또한 추가적으로,


.으로 변경을 해서 사용하는데, 표준이 아니므로 날짜로 인식하지 않을 때가 있다.

- 또는 /는 날짜로 인식이 잘 되는데 . 은 잘 안된다.

이때는 날짜가 아니라 문자로 인식되는데, 이 때는 . 을 - 로 아래와 같이 변경한 뒤에 사용해야 한다.


$replace_date=str_replace(".","-",$date);


게시판 구현 시, 현재 날짜로부터 30일 이전에 등록된 게시물일 경우 new 표시를 하고자 한다면,

현재 시간과 등록된 게시물의 시간을 각각 timestamp로 변경을 한 뒤, 차이를 구한다.

이 결과는 초로 계산되므로, 


30일 동안의 초보다 작다면? 30일이 안 된 글이므로 new를 표시,

30일 동안의 초보다 크다면? 30일이 지난 글이므로 new를 표시하지 않는다. 즉, if 조건식에는


30일 동안의 초를 구한다. 


60 * 60 * 24가 하루의 총 초이므로, 30을 곱해야 30일이 되겠다.

다음과 같이 조건식을 작성하면 된다.


if(time() - strtotime($date) <= 60 * 60 * 24 * 30) { .... }

와 같이 하면 된다.

time() : (현재) 날짜 시간.
strtotime() : (매개변수로 들어간 변수의) 날짜 시간.



Posted by sungho88
,

아파치에 업로드시킨 후, 웹 브라우저로 접속을 해보았다.


그런데 mysql DB로부터 데이터를 읽어오는데 문제가 발생했다.


영어나 숫자로 된 게시물은 정상적으로 출력되는 반면에,


한글로 된 게시물은 비정상적으로 출력되었다.


즉, 한글을 인식하지 못하여 물음표로만 출력되는 것이었다.


 

뭔가 인코딩 문제라 생각이 들어 구글을 통해 열심히 찾아보았다.


지금 사용하고 있는 우분투 버전은 16.04 최신 버전인데 이것때문에 그럴까?


그것은 아니었다. mysql에 설정이 latin1이 기본적으로 설정되어 있기 때문이라는것을 알게 되었다.


이것을 어떻게 utf8로 변경할까?


이 고마운 블로그


에서 해답을 알 수 있었다.


그 전에,


많은 블로그들이 my.cnf를 고치면 된다고들 했다. (설치 경로 : /etc/mysql)


하지만, 버전이 올라가면서 이 파일에서는 그냥 includedir로 다른 파일을 불러들이는 용도로 변했다.


그래서, 두 가지을 각각 찾아가서 열어보았다.


그 결과 밑에 있는 경로 /etc/mysql/mysql.conf.d/에 있는 mysql.cnf가 중요한 파일이다.


이 파일을 열면


$ sudo nano /etc/mysql/mysql.conf.d/mysql.cnf

또는 


$nano /etc/mysql/my.conf


뭔가 샵#이 붙은 내용이 줄줄이 나오는데, 그 중에서 



[mysqld] 이 부분을 찾아서, 맨 마지막에 캐릭터셋을 지정하주면 된다.


character-set-client-handshake=FALSE 

collation-server=utf8_general_ci 

character-set-server=utf8


그 다음 재부팅~


sudo /etc/init.d/mysql restart


이렇게 복붙하면 utf8로 설정이 되어, 정상적으로 한글이 나오게 된다.

짜잔.






//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////


블로그에 적어놓은 것을 잊고, 한참을 다시 검색하였다.

이번에는 우분투14.04에서 환경을 설정하는 중인데 우분투16.04와 몇 가지 차이점이 있다.


위에서 언급한것과 같이 14.04에서는 


/etc/mysql/my.conf에서 직접 수정이 가능하다(16.04의 경우 Include의 기능만 갖는다)


다음과 같이 


[client]에도,

default-character-set=utf8  추가


[mysqld]에는 이렇게, 여러개   추가

character-set-server=utf8

collation-server=utf8_general_ci

init_connect=SET collation_connection=utf8_general_ci

init_connect=SET NAMES utf8


[mysqldump]에도,

default-character-set = utf8  추가


[mysql]에도, 

default-character-set=utf8  추가


해주면 mysql 설정이 모두 utf-8로 변경이 되었다는 것을 mysql> status를 통해 볼 수 있다.

하지만, 사이트는 여전히... 물음표다. Mysql은 모두 변경되었는데...무엇이 문제일까?

음... 


한참을 검색하다가 많이 눈에 익은 사이트에 들어와서 정답을 알게 되었다.

그 사이트가 바로 내 블로그다ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ


내가 적어두고 다른데가서 삽질하다니.... 삽질 안 하려고 적어두고는 다른데가서 삽질을...


내가 입력한것과 이전에 작성해둔 코드와 비교하니 한 가지만 없었다.

바로바로바로바로


character-set-client-handshake=FALSE 


이것!!!!!!!!!!!!

이것을 


[mysqld] 하단에 넣어주면~?

???????????

?????????????????

????????????????????????


물음표를 좋아하던 사이트가 !

한글로 변환되어 보여지는것을 알 수있다.


정리.

[mysqld]에는 총 5개를 추가해준다.


character-set-client-handshake=FALSE

character-set-server=utf8

collation-server=utf8_general_ci

init_connect=SET collation_connection=utf8_general_ci

init_connect=SET NAMES utf8


Posted by sungho88
,