'개발'에 해당되는 글 43건

  1. 페이스북 생일 축하 글로 뭘 써야 할지 고민이 될 때 1
  2. PHP에서 https 연결인지 확인하기
  3. [Javascript] 인터넷 익스플로러에서 Includes 함수가 동작하지 않는 현상
  4. 오늘 나 뭐했지..?
  5. PHP 배열 value 기준으로 key 삭제하기
  6. FileZilla 사용시 유의사항 - 파일이 깨질때
  7. PHP에서 startsWith, endsWith 사용하기
  8. PHP 개발 - 문자열 치환하기 str_replace
  9. PHP 개발 - HTML 태그나 스크립트의 작동을 막기 htmlspecialchars
  10. PHP 개발(explode) - 문자열을 구분자로 나누기 1

페이스북에서는 생일인 친구가 있으면 알려주는데요. 뭔가 축하의 메세지를 보내야 할 필요성은 느끼면서도 막상 뭐라 쓰면 좋을지 고민이 될 때가 있습니다. 왠지 참신하게 쓰고 싶었서 아래 사이트를 만들었습니다.


http://tarks.net/square/birthday


페이스북 생일 축하 글로 뭘 써야 할지 고민이 될 때

http://tarks.net/square/birthday

위 링크를 누르면 바로 만들어 볼 수 있습니다.


생일을 축하해줄 친구의 이름 생년월일과 마지막으로 할 말을 입력하면, 아래 사진과 같은 페이지가 생성됩니다.

페이지에서 볼 수 있는 카드들




http://tarks.net/square/birthday

'Square' 카테고리의 다른 글

2월 28일 업데이트  (0) 2019.03.01
Square 3.4 패치 노트  (1) 2017.09.26
Square 3.3 패치 노트  (0) 2017.07.22
Square 3.2 패치 노트  (0) 2017.07.06
Square 3.1 패치 노트  (0) 2017.07.03

지금 통신하고 있는 상황이 일반 http인지 아니면 https 보안 연결 통신인지 PHP에서 확인할 수 있습니다.



PHP에서 https 연결인지 확인하기

아래와 같은 함수를 통해 Https 사용 여부를 판단합니다.

function isSecure() {
return
(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
|| $_SERVER['SERVER_PORT'] == 443;
}



true 값을 반환하면 https 연결을, false 값을 반환하면 http 연결을 의미합니다.



Includes는 항목에서 원하는 특정 문자열이 있는지 확인해주는 JavaScript 함수입니다. 아무 생각 없이 습관처럼 쓰다가 인터넷 익스플로러(Internet Explorer)에서는 동작하지 못하고 오류를 뿜어냈습니다.

최신 버전인 IE11에서도 마찬가지였으며, 다른 브라우저에서는 잘되는데 유독 IE에서만 지원하지 못하는 함수였습니다.




해결 방법


같은 기능을 하는 다른 함수로 바꿔 문제를 해결할 수 있습니다.


기존

if(str.includes('hi')){
alert('HI!!');
}


변경 후

if(str.indexOf('hi') >= 0){
alert('HI!!');
}


문자열.indexOf(확인할문자열) >= 0 을 이용해서 includes와 동일한 기능을 하게 할 수 있습니다. indexOf는 찾고자 하는 문자열이 어디 위치에 있는지 반환해주는 함수인데, 문자열 내에 존재하지 않으면 -1을 반환합니다. 


따라서 0 이상이면 존재한다고 볼 수 있습니다.

시간 관리를 잘해 하루를 알차게 보내는 것은 모두의 희망 사항이죠. 하지만 자꾸 새는 시간이 있는 거 같고, 어떨 때는 오늘 무엇을 했는지 기억조차 안 나는 경우가 있습니다. 

Haru는 이런 문제를 해결하기 위해 개발되었습니다. 시간대별로 어떤 활동을 했는지 적고 평가해보세요. 시간을 어떻게 보냈는지 되돌아볼 수 있어 허투루 쓰는 시간을 줄일 수 있습니다.


http://haru.tarks.net

Haru - 시간을 알차게 보내는 방법


목표를 이루는 시간 관리법


정말로 우리는 시간이 부족한가? 혹시 우리도 모르는 사이에 귀한 시간을 흘려보내지는 않는가?


예전의 실험 결과만 대충 적혀 있는 쪽을 되돌아보니 도저히 이날 무슨 일을 했는지 기억이 나질 않았다. 그래서 나는 내일 적을 페이지부터 왼쪽에 줄을 그어서 24칸으로 나눈 뒤 매시간 무엇을 했는지 간략하게 메모하기로 했다.


맨 처음에는 점심시간이나 저녁 시간 혹은 퇴근 전에 기억을 떠올리면서 기록을 하다가 막상 그렇게 떠올리려고 하니 구체적으로 생각이 안 날 때가 많아서 두 시간마다 한 일을 적기 시작했다.


처음에는 단순히 어떤 일을 했는지 적다가 나중에는 몰입 정도를 Good/Soso/Bad로 나누어서 추가로 적었다. 그렇게 처음 보름 정도 신경 써서 꼼꼼히 기록했다. 그리고 다시 기록을 살펴보았을 때 나는 많은 것을 깨달을 수 있었다.


나는 일 년 이상 악착같이 열심히 기록했다. 그럼 체계적인 시간 관리의 결과는 어땠을까? 2년 만에 박사 논문을 다 쓰고도 남을 만큼의 실험 결과를 만들었고, 그 결과를 바탕으로 2년 동안 5개의 일저자 논문을 상당히 좋은 저널에 게재하는 데 성공했다. 그리고 졸업하기 전까지 일 년 넘게 내 박사 논문 주제와 다른 실험을 연구실과 후배들을 위해 진행했다.


졸업 후 연구실은 그 주제로 50억 이상의 연구 자금을 유치했고, 두 명의 학생이 그 주제를 이어받아 좋은 논문으로 박사 학위를 받았다. 이 모든 것이 시간 관리에서 시작된 결과다.


PPSS '목표를 이루는 시간 관리법' 중에서 - http://ppss.kr/archives/95988


이 글을 보고 평소 하루 24시간을 어떻게 보냈는지, 한 게 없는거 아니냐는 고민을 많이 했던 저로서는 매우 좋은 아이디어였고, 언제 어디서든 모바일 아니면 컴퓨터로 관리 할 수 있으면 괜찮을 거라고 생각이 들어 Haru를 개발하게 되었습니다.


한 일 기록하기


한 일을 기록하기는 매우 쉽습니다. 시간대별로 연필 모양을 눌러서 바로 기록할 수 있습니다. 언제까지 항목을 통해 활동한 시간 범위를 지정할 수 있습니다.


어제 한일 뒤돌아보기


상단의 왼쪽 화살표를 눌러 어제 한 일을 뒤돌아볼 수 있습니다.



성실도


계획표든 뭐든 뭔가를 마음먹고 하려다 보면 보통 3일을 넘기지 못하는 경우가 많습니다. 

성실도 항목은 그런 걸 조금이라도 막아보자 만들게 되었습니다. 평균적인 다른 사용자와 비교하여 얼마나 꾸준하게 기록하고 하루를 평가했느냐에 따라 다르게 나타납니다.

꾸준하게 할수록 상승하는 변동 폭이 커지게 됩니다. 자신을 돌아보는 지표로 사용해보세요. 



지금 시작해보세요.

http://haru.tarks.net

보통 key를 토대로 배열을 관리하지만,  특정 배열값 기준으로 다루어야 하는 경우가 있습니다. 제시되는 값과 배열 값이 일치하면 배열 목록에서 key를 제거하는 함수입니다.


PHP  배열 value 기준으로 key 삭제하기



function arr_del($list_arr, $del_value) // 배열, 삭제할 값
{
$b = array_search($del_value,$list_arr);
if($b!==FALSE) unset($list_arr[$b]);
return $list_arr;
}


위 함수를 사용하면 해당하는 value는 배열에서 삭제되게 됩니다.


예제)


$array = array("A", "B", "C");



$array = arr_del($array, 'A');


print_r($array);


결과)


Array ( [1] => B [2] => C )


A가 value인 key는 삭제되었습니다.



FileZilla는 유명한 오픈소스 FTP 클라이언트입니다. FTP로 파일을 전송할 때 자주 이용하게 되는데, 파일 전송 시 원본 파일과는 다르게 깨져서 제대로 사용한 불가능한 문제점이 생길 때가 있습니다.



문제 원인과 해결방법


이는 파일 전송하는 방법(모드)에 관한 문제로, 아스키 모드일때 UNIX(Linux)와 Dos(Windows) 의 아스키코드로 된 파일의 표현 방식이 달라서 생기는 문제입니다.


보통 개행 문자 부분에 문제가 생겨서 파일 내용이 달라집니다.


해결 방법


파일질라 설정에서 -> 전송(Transfers) 항목에 파일 종류(File Types) -> 기본 전송 유형(Default transfer type)에서 자동이나 아스키(ASCII)로 되어있는 부분을 바이너리(Binary)로 변경하면 해결됩니다.

바이너리는 파일을 있는 그대로 보내게 됩니다.


파일 전송했을 때 원활한 동작이 되지 않거나 파일이 깨진다면 이 항목을 확인해보세요.




'Development' 카테고리의 다른 글

Github 리포지토리를 Tar.gz 형식으로 받기  (0) 2017.06.28


startWith, endsWith는 ~로 시작하는 혹은 ~로 끝나는지 여부를 알수 있게 해주는 좋은 API입니다. 하지만 PHP에서는 이런 API를 따로 제공하고 있지 않아 불편한 점이 있습니다.

아래 함수를 사용하면 PHP에서도 Java나 C#처럼 사용할 수 있습니다.




PHP에서 startsWith, endsWith 사용하기


StartsWith

function startsWith($haystack, $needle) {
// search backwards starting from haystack length characters from the end
return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== false;
}


사용 예 : startsWith( 'abcdef' , 'a');

결과값 : true


EndsWith

function endsWith($haystack, $needle) {
// search forward starting from end minus needle length characters
return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0 && strpos($haystack, $needle, $temp) !== false);
}


사용 예 : endsWith('abcdef', 'f');

결과값 : true


PHP에서 자신이 원하는 문자열을 다른 문자열로 대체하고 싶을 때 사용할 수 있습니다.


PHP 개발 - 문자열 치환하기 str_replace



만약에 문자열 "가나다라마바사"에서 "사"를 "가"로 바꾸고 싶다면


$value = "가나다라마바사";


echo str_replace("사", "가", $value); 



결과값은 "가나다라마바가"가 됩니다.


더 자세한 함수 정보는 아래 링크를 참고하세요.


http://www.php.net/manual/en/function.str-replace.php






도움이 되셨나요?

그럼 손가락을 눌러주세요:)

PHP를 활용하여 개발을 하다 보면 DB에 저장되어 있는 글을 가져와 표시해야할 때가 있습니다. 그럴때 DB 내용에 HTML 태그나 여타 스크립트가 포함되어 레이아웃이 사용자 임의대로 변경되거나 XSS 공격에 사용될 수 있습니다.


DB에서 불러올 때 문자열을 변환해 이런 태그나 스크립트의 작동을 막아주는 함수입니다.


 PHP 개발 - HTML 태그나 스크립트의 작동을 막기 htmlspecialchars



PHP 사용 예시

echo htmlspecialchars($content);



위와 같이 하면 만약에 $content 변수에 <script>를 집어넣으면 &lt;script&gt;로 변환되어 더이상 스크립트의 역할을 하지 못하게 됩니다.




하지만 사용자가 브라우저로 보는 상에서는 <script> 문자열로 잘 보입니다. 


주로 인터넷 게시판에서 글 작성시 스크립트로 동작하지 않고 문자열로 잘 보이는 것과 같은 원리입니다.(HTML 허용시는 당연히 예외)


이 함수에 대한 더 자세한 사용방법이나 설명은 PHP 사이트에서 확인할 수 있습니다.


http://docs.php.net/manual/en/function.htmlspecialchars.php












도움이 되셨나요?

그럼 손가락을 눌러주세요:)




단순한 문자열을 구분자를 기준으로 나눠 배열을 만들 수 있습니다.


PHP 개발 - 문자열을 구분자로 나누기



코드

$value = "가,나,다,라";


$array = explode(",", $value); //"," 부분이 구분자이며 $value 부분이 구분자로 나눌 문자열입니다.




결과


$array 안엔 ,을 기준으로

[0] => 가

[1] => 나

[2] => 다

[3] => 라


가 순서대로 들어간 배열이 생성됩니다.




도움이 되셨나요?

그럼 손가락을 눌러주세요:)