[PHP] 문장 / 문자열의 의 대소문자를 변환해주는 함수[PHP] 문장 / 문자열의 의 대소문자를 변환해주는 함수

Posted at 2018. 8. 30. 10:11 | Posted in PHP
반응형




참고 : http://mwultong.blogspot.com/2007/06/php-uppercase-lowercase-string.html




■ 문장 / 문자열의 의 대소문자를 변환해주는 함수




#01. 문장을 전부 소문자로 변환하는 strtolower( ) 함수


<?php
    $letter = "Warcraft III The Frozen Throne";
    echo strtolower($letter);
?>












#02. 문장을 전부 대문자로 변환하는 strtoupper( ) 함수


<?php
    $letter = "Warcraft III The Frozen Throne";
    echo strtoupper($letter);
?>










#03. 문장의 첫 글자 대문자로 변환하는 ucfirst( ) 함수


<?php
    $letter = "let's swing dance";
    echo ucfirst($letter);
?>











#04. 각 단어의 첫 글자만 대문자로 변환하는 ucwords( ) 함수


<?php
    $letter = "let's swing dance";
    echo ucwords($letter);
?>








반응형
//

[PHP] PHPExcel 서식 변경하기[PHP] PHPExcel 서식 변경하기

Posted at 2018. 8. 29. 18:35 | Posted in PHP
반응형




■ PHPExcel 서식 변경하여 숫자값 나타내기





#01. 앞자리가 0으로 끝나는 문자열 출력하기



엑셀 문서 작업중에서는 앞자리가 0으로 끝나야 하는 경우의 수가 발생한다.




위 이미지처럼 셀 서식에서 미리 앞자리에 0이 삽입될 수 있게끔 서식을 지정하면 되는데.


PHPExcel에서도 0이 앞으로 나오게끔 할 수 있고 그것을 지원해 주는 함수가 존재한다.


<?php

      $objPHPExcel -> getActiveSheet() -> getStyle("A1") -> getNumberFormat() -> setFormatCode("00000");

?>


0이 앞자리에 들어갈 탭을 getStyle( )사용하여 지정하고 getNumberFormat( ), setFormatCode( ) 위 두개의 함수를 사용하면 가능한데.


그 예는 아래와 같다.



# 소스코드

<?php
include "./PHPExcel-1.8/Classes/PHPExcel.php";
$objPHPExcel = new PHPExcel();

$arrVelvet = array();


// 앞자리가 0으로 끝나는 숫자값을 number에 담는다.

$arrVelvet[1] = array("number" => "00001", "name" => "아이린", "position" => "센터, 리더, 메인래퍼", "birthday" => "03월 29일");
$arrVelvet[2] = array("number" => "00002", "name" => "슬기", "position" => "리드보컬, 메인댄서", "birthday" => "02월 10일");
$arrVelvet[3] = array("number" => "00003", "name" => "웬디", "position" => "메인보컬", "birthday" => "02월 21일");
$arrVelvet[4] = array("number" => "00004", "name" => "조이", "position" => "리드래퍼, 서브보컬", "birthday" => "09월 03일");
$arrVelvet[5] = array("number" => "00005", "name" => "예리", "position" => "서브래퍼, 서브보컬", "birthday" => "03월 05일");

$objPHPExcel -> setActiveSheetIndex(0)
    -> setCellValue("A1", "NO.")
    -> setCellValue("B1", "이름")
    -> setCellValue("C1", "포지션")
    -> setCellValue("D1", "생일");

$count = 1;
foreach($arrVelvet as $key => $val) {
    $num = 1 + $key;
    $objPHPExcel -> setActiveSheetIndex(0)
    -> setCellValue(sprintf("A%s", $num), $val['number'])
    -> setCellValue(sprintf("B%s", $num), $val['name'])
    -> setCellValueExplicit(sprintf("C%s", $num), $val['position'])
    -> setCellValue(sprintf("D%s", $num), $val['birthday']);
    $count++;
}

$objPHPExcel -> getActiveSheet() -> getColumnDimension("A") -> setWidth(10);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("B") -> setWidth(12);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("C") -> setWidth(30);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("D") -> setWidth(15);

$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A1:D%s", $count)) -> getAlignment() -> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A1:D%s", $count)) -> getBorders() -> getAllBorders() -> setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel -> getActiveSheet() -> getStyle("A1:D1") -> getFont() -> setBold(true);
$objPHPExcel -> getActiveSheet() -> getStyle("A1:D1") -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) -> getStartColor() -> setRGB("CECBCA");
$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A2:D%s", $count)) -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) -> getStartColor() -> setRGB("F4F4F4");


// getNumberFormat(), setFormatCode() 함수를 사용한다.
// setFormatCode() 함수에 앞자리 0이 출력되게끔 문자열의 자리수 만큼 0을 입력한다.
$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A2:A%s", $count)) -> getNumberFormat() -> setFormatCode("00000");



$objPHPExcel -> getActiveSheet() -> setTitle("레드벨벳");
$objPHPExcel -> setActiveSheetIndex(0);
$filename = iconv("UTF-8", "EUC-KR", "레드벨벳");

header("Content-Type:application/vnd.ms-excel");
header("Content-Disposition: attachment;filename=".$filename.".xls");
header("Cache-Control:max-age=0");

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel5");
$objWriter -> save("php://output");
?>



# 출력결과 - 엑셀 파일 다운로드




# 출력결과 - 엑셀 파일 결과값









#02. 천단위 숫자에 콤마( , ) 기호 삽입하기


이번에는 엑셀에서 천단위가 넘어가는 숫자값에 자동으로 콤마( , )가 삽입되는 서식이다.



이번에는 setFormatCode( ) 안에 #,##0 을 입력하면 된다.


<?php

      $objPHPExcel -> getActiveSheet() -> getStyle("A1") -> getNumberFormat() -> setFormatCode("#,##0");

?>


이 방식을 활용한 예제는 아래와 같다.



# 소스코드

<?php
include "./PHPExcel-1.8/Classes/PHPExcel.php";
$objPHPExcel = new PHPExcel();

$arrChicken = array();
$arrChicken[1] = array("name" => "굽네치킨", "site" => "www.goobne.co.kr", "brand" => "1555064");
$arrChicken[2] = array("name" => "교촌치킨", "site" => "www.kyochon.com", "brand" => "1513807");
$arrChicken[3] = array("name" => "맘스터치", "site" => "www.momstouch.co.kr", "brand" => "1492470");
$arrChicken[4] = array("name" => "BBQ", "site" => "www.bbq.co.kr", "brand" => "1149937");
$arrChicken[5] = array("name" => "BHC", "site" => "www.bhc.co.kr", "brand" => "1028167");
$arrChicken[6] = array("name" => "네네치킨", "site" => "nenechicken.com", "brand" => "717022");
$arrChicken[7] = array("name" => "처갓집양념치킨", "site" => "www.cheogajip.co.kr", "brand" => "344319");
$arrChicken[8] = array("name" => "또래오래", "site" => "www.toreore.com", "brand" => "333237");
$arrChicken[9] = array("name" => "호식이두마리치킨", "site" => "www.9922.co.kr", "brand" => "329789");
$arrChicken[10] = array("name" => "페리카나", "site" => "www.pelicana.co.kr", "brand" => "249857");
$arrChicken[11] = array("name" => "멕시카나", "site" => "www.mexicana.co.kr", "brand" => "235892");
$arrChicken[12] = array("name" => "지코바양념치킨", "site" => "www.gcova.co.kr", "brand" => "214345");
$arrChicken[13] = array("name" => "또봉이통닭", "site" => "ttobongee.com", "brand" => "121882");
$arrChicken[14] = array("name" => "멕시칸치킨", "site" => "www.mexicanchicken.co.kr", "brand" => "88719");
$arrChicken[15] = array("name" => "마파치킨", "site" => "www.mapachicken.co.kr", "brand" => "83152");
$arrChicken[16] = array("name" => "부어치킨", "site" => "www.boor.co.kr", "brand" => "81520");
$arrChicken[17] = array("name" => "훌랄라참숯바베큐", "site" => "www.hoolala.co.kr", "brand" => "22720");

$objPHPExcel -> setActiveSheetIndex(0)
    -> setCellValue("A1", "NO.")
    -> setCellValue("B1", "이름")
    -> setCellValue("C1", "사이트")
    -> setCellValue("D1", "브랜드평가");


$count = 1;
foreach($arrChicken as $key => $val) {
    $num = 1 + $key;
    $objPHPExcel -> setActiveSheetIndex(0)
    -> setCellValue(sprintf("A%s", $num), $key)
    -> setCellValue(sprintf("B%s", $num), $val['name'])
    -> setCellValueExplicit(sprintf("C%s", $num), $val['site'])
    -> setCellValue(sprintf("D%s", $num), $val['brand']);
    $count++;
}

$objPHPExcel -> getActiveSheet() -> getColumnDimension("A") -> setWidth(8);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("B") -> setWidth(20);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("C") -> setWidth(30);
$objPHPExcel -> getActiveSheet() -> getColumnDimension("D") -> setWidth(18);

$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A1:D%s", $count)) -> getAlignment() -> setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A1:D%s", $count)) -> getBorders() -> getAllBorders() -> setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel -> getActiveSheet() -> getStyle("A1:D1") -> getFont() -> setBold(true);
$objPHPExcel -> getActiveSheet() -> getStyle("A1:D1") -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) -> getStartColor() -> setRGB("CECBCA");
$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("A2:D%s", $count)) -> getFill() -> setFillType(PHPExcel_Style_Fill::FILL_SOLID) -> getStartColor() -> setRGB("F4F4F4");


// getNumberFormat(), setFormatCode() 함수를 사용한다.
// setFormatCode() 함수에 천단위를 나타내는 서식인 #,##0 입력한다.

$objPHPExcel -> getActiveSheet() -> getStyle(sprintf("D2:D%s", $count)) -> getNumberFormat() -> setFormatCode("#,##0");


$objPHPExcel -> getActiveSheet() -> setTitle("치킨전문점 브랜드평가 8월");
$objPHPExcel -> setActiveSheetIndex(0);
$filename = iconv("UTF-8", "EUC-KR", "치킨전문점");


header("Content-Type:application/vnd.ms-excel");
header("Content-Disposition: attachment;filename=".$filename.".xls");
header("Cache-Control:max-age=0");


$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel5");
$objWriter -> save("php://output");
?>




# 출력결과 - 엑셀 파일 다운로드





# 출력결과 - 엑셀 파일 결과값

반응형
//

[Telegram] Telegram Bot을 사용하여 메세지 전송하기[Telegram] Telegram Bot을 사용하여 메세지 전송하기

Posted at 2018. 8. 29. 05:30 | Posted in API/Telegram
반응형






■ 텔레그램 봇을 사용하여 메세지 전송하기




#01. BotFather를 통한 메세지 봇 생성하기



텔레그램의 봇은 @BotFather를 통해 관리된다.


텔레그램 응용프로그램을 실행한뒤 아래 이미지와 같은 순서대로 작업을 진행한다.



01. 메시지 봇 생성하기




 ① 텔레그램 검색창에 BotFather 라고 입력한다.

 ② 검색결과에서 BotFather를 선택하고 대화를 시작한다.

 ③ /start라고 입력한다.

 ④ /newbot이라고 입력하여 새로운 봇을 생성할 준비를 한다.

 ⑤ 자신이 사용할 봇의 아이디를 입력한다.(예 : wicked_test)

 ⑥ 생성한 봇 아이디_bot 이라고 추가적으로 입력해 준다.(예 : wicked_test_bot)
 ⑦ 텔레그램의 답변문구의 토큰 API키 값을 확인한다.




02. 정상적으로 메시지 봇이  생성되었다면 텔레그램 API에 getUpdate 값을 웹 브라우저로 전달하여 생성이 잘 되었는지를 확인해보자.


# 예시

 https://api.telegram.org/bot + 토큰 API 키값 + /getUpdates


# 출력결과

 https://api.telegram.org/bot682811095:AAEfPFpuEOrq5uCk7KK6aP8BLlX-fpHov8k/getUpdates











#02. Chart ID 확인하기


01. 먼저 메시지를 전달받을 텔레그램 계정으로 로그인한 텔레그램 채팅창에서 위에서 제작한 봇을 검색한다.

 ① 검색창에서 제작한 텔레그램 봇의 아이디 값을 입력한다.(예 : wicked_test)

 ② 검색결과에 제작한 봇 아이디가 나온다면 선택해준다.

 ③ 대화를 시작한다.






02. 대화가 시작되면 위와같이 /start 라고 자동으로 입력되는것을 확인 할 수 있다.






03. 이제 다시 위에서 실행한 웹 브라우저를 새로고침 하여 다시 getUpdates 를 전달해보면 입력한 값이 잘 출력되는 것을 확인 할 수 있다.











#03. 사용자에게 메세지 전송하기



01. 웹 브라우저를 실행해서 아래와 같이 코드를 작성하 메시지를 보내보도록 하자.


# 예시

 https://api.telegram.org/bot + 토큰 API 키값 + /sendmessage?chat_id= + 사용자차트ID + &text= + 전송할 메세


# 출력결과

 https://api.telegram.org/bot682811095:AAEfPFpuEOrq5uCk7KK6aP8BLlX-fpHov8k/sendmessage?chat_id=39538219&text=Message





02. 실제 텔레그램 상에서도 작성한 메세지 내용이 정상적으로 출력되는 것을 확인 할 수 있다.








반응형
//

[JavaScript] 전화번호 Hyphen(-)기호 자동 삽입[JavaScript] 전화번호 Hyphen(-)기호 자동 삽입

Posted at 2018. 8. 21. 10:04 | Posted in JavaScript & jQuery/JavaScript
반응형

 

 

 

■ 휴대폰 번호 하이픈(-)기호 자동 삽입

 

 

 

# 소스코드

<html>
<head>
<title>:: 휴대폰 번호 마이너스(-) 삽입 ::</title>
<script>
function inputPhoneNumber(obj) {



    var number = obj.value.replace(/[^0-9]/g, "");
    var phone = "";



    if(number.length < 4) {
        return number;
    } else if(number.length < 7) {
        phone += number.substr(0, 3);
        phone += "-";
        phone += number.substr(3);
    } else if(number.length < 11) {
        phone += number.substr(0, 3);
        phone += "-";
        phone += number.substr(3, 3);
        phone += "-";
        phone += number.substr(6);
    } else {
        phone += number.substr(0, 3);
        phone += "-";
        phone += number.substr(3, 4);
        phone += "-";
        phone += number.substr(7);
    }
    obj.value = phone;
}
</script>
</head>
<body>
    <h2>휴대폰 번호를 입력해 주세요</h2>
    <input type="text" onKeyup="inputPhoneNumber(this);" maxlength="13" style="text-align:center;"/>
</body>
</html>

 

 

 

# 출력결과

 

 

 


 

 

 

 

■ 지역번호 서울 예외처리(02)

 

 

 

위의 코드를 구태여 휴대폰 번호라고 굳이 지정한것은.

한국의 특수한 지역번호 사정 때문이다.

 

휴대폰 번호 : 010-0000-0000

전화 번호 : 031-0000-0000

 

위와같이 휴대폰 번호나, 전화번호나 문자열의 길이는 기본적으로 13자리로 같지만

단한가지 서울특별시만은 전화번호이 앞 지역번호가 02 두자리이기에 따로 예외 처리가 필요했다.

그래서 아래와같이 전체적으로 사용할 수 있게 코드를 수정해 보았다.

 

 

# 소스코드

<html>
<head>
<title>:: 전화번호 마이너스(-) 삽입 ::</title>
<script>
  function inputTelNumber( ele ) {

    if( event.keyCode != 8 ) {
      const regExp = new RegExp( /^[0-9]{2,3}-^[0-9]{3,4}-^[0-9]{4}/g );
      if( ele.value.replace( regExp, "").length != 0 ) {
        if( checkPhoneNum( ele.value ) == true ) {
          let number = ele.value.replace( /[^0-9]/g, "" );
          let tel = "";
          let seoul = 0;
          if( number.substring( 0, 2 ).indexOf( "02" ) == 0 ) {
            seoul = 0;
          }
          if( number.length < ( 4 - seoul) ) {
              return number;
          } else if( number.length < ( 7 - seoul ) ) {
              tel += number.substr( 0, (3 - seoul ) );
              tel += "-";
              tel += number.substr( 3 - seoul );
          } else if(number.length < ( 11 - seoul ) ) {
              tel += number.substr( 0, ( 3 - seoul ) );
              tel += "-";
              tel += number.substr( ( 3 - seoul ), 3 );
              tel += "-";
              tel += number.substr( 6 - seoul );
          } else {
              tel += number.substr( 0, ( 3 - seoul ) );
              tel += "-";
              tel += number.substr( ( 3 - seoul), 4 );
              tel += "-";
              tel += number.substr( 7 - seoul );
          }
          ele.value = tel;
        }
      }
    }
  }

  function checkPhoneNum( number ) {
    const regExp = new RegExp( /^[0-9|-]*$/ );
    if( regExp.test( number ) == true ) { return true; }
    else { return false; }
  }
</script>
</head>
<body>
    <h2>전화 번호를 입력해 주세요</h2>
    <input type="text" onKeyup="inputTelNumber(this);" maxlength="13" style="text-align:center;"/>
</body>
</html>

 

 

 

# 출력결과 - 지역번호가 서울(02)인 경우

 

 

 

# 출력결과 - 지역번호가 서울(02)이 아닌경우

 

 

 

 

 

 

 

반응형
//