file_get_contents 파일 읽어오기 


file_get_contents를 활용 하는 방법에 대해 설명하겠습니다.
각종 JSON 파싱이나 XML 파싱으로 데이터를 다루는 일이 많아져서
빈도가 높아진 함수입니다. 

▼ 우선 PHP가 제공하는 레퍼런스는 아래와 같습니다.

▼ 제가 정리한 소스는 아래와 같습니다. 
압축을 풀어 웹서버에서 확인해보세요 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
 
//헤더 정보를 등록한다.
$opts = array(
    'http' => array(
        'method' => "GET",
        'header' => "Accept-language: utf-8\r\n" .
            "Cookie: foo=bar\r\n"
    )
);
$context = stream_context_create($opts);
 
//파일로도 정보를 읽어올 수 있다.
// $filename = 파일 내지, URL를 통해 해당 데이터를 읽어 올수 있다.
// $use_include_path = 참조(include)된 내용까지 읽어 올지
// $context = 헤더 정보를 입력
// $offset = 몇번째 데이터 부터 읽어올지
// $maxlen = 최대 얼마나 많은 양을 읽어 올지
$file2 = file_get_contents('./file.txt'true$context18);
echo $file2;    //2번째 데이터부터 8개의 데이터니 2~9까지 노출 된다.
 
//URL로 해당 사이트의 정보를 읽어올수 있다.
$file1 = file_get_contents('http://www.google.com/webhp?hl=en');
echo $file1;
 
?>
cs



▼ URL을 가지고 올때 아래처럼 오류가 날 경우는 보안상 해당 방식으로의 접근을 막아놓았기 때문입니다. 
$filename 
- URL을 읽어올시에는 서버 설정에 따라 접근이 불가합니다. PHP라면 php.ini 에 allow_url_fopen가 ON이 되어 있어야 합니다. 


▼Offset으로 불필요한 정보를 건너 뛸수 있고
Maxlen은 웹사이트를 어디까지 읽어올지 결정할 수 있습니다.
이 두변수를 통해서 어디부터 어디까지 파싱할지 결정하시면 됩니다.
$offset = "1" 
- 2번째 데이터부터 가져온다.
$maxlen = "8" 
- 총 8개의 데이터를 가져온다 띄워쓰기 및 개행 문자도 length에 포함

▼ 제가 정리한 해당 소스를 출력 시켜보았습니다.
첫번째는 미국 구글을 URL로 파싱해서 가져왔고
두번째는 file.txt에 1234567890의 내용을 가져왔습니다.





마무리

PHP는 프론트엔드 개발을 위한 함수가 많은 언어 입니다.


댓글을 달아 주세요



JetBrains IDE support  PHPStron , Webstorm 에서 크롬 디버깅 모드 사용 


최신버전 Storm 개발중 뜨는 안내 창
"JetBrains IDE support" 확장 프로그램을 소개합니다.
크롬의 console 기능을 스톰에서 사용할 수 있게 해주는 기능입니다. 

▼해당 링크를 클릭하면 



▼혹은 아래 URL을 접속하면은 해당 크롬 확장 프로그램을 설치 할 수 있습니다.



▼Storm에서 마우스 오른쪽 버튼을 눌러 해당 Debug 모드를 누르면 


▼혹은 크롬에서 해당 버튼을 누르면 


▼크롬창에서는 해당과 같은 메세지가 뜹니다.



▼바로 이 콘솔창에 있는 기능들을  



▼Storm에서 사용할수 있습니다. 브라우저와 IDE를 이동하지 않고 한자리에서 쉽게 디버깅이 가능합니다.
스톰에서 아래처럼 콘솔로그를 기록해보았습니다. 


▼크롬에서 해당 메세지가 보이네요.
반대로 크롬에서 콘솔로그를 찍으면 스톰에서 보이겠죠.


▼그리고 소스 디버깅 모드를 사용하면 해당처럼 디버깅 시작점을
찍고 새로고침을 하면


▼해당처럼 크롬 디버그 모드가 시작되겠죠.


▼스톰에서도 해당 디버그 모드가 실행되면서 라인의 소스라인의 하일라이트가 그려집니다.
디버그로 한줄 한줄 읽어가면서 수정하기 편할거 같습니다.


▼반대로 스톰에서 해당 버튼을 통해 디버그 라인을 이동시킬 수 있습니다. 
해당 기능은 프론트 엔드 개발자에게 큰 도움이 될거라 생각이 듭니다.


▼그리고 변수에 담긴 데이터등 스톰에서도 그대로 디버그 정보들을 확인 가능합니다.






댓글을 달아 주세요



PHP에서 시간이 잘못 노출 되는 경우 


PHP를 date의 시간이 알 수 없는 시간으로 보일때가 있습니다.
아파치 설정 문제이므로 간단하게 해결해보겠습니다.

▼아래처럼 코드를 작성하고 웹에서 확인해보자 
1
2
3
<?php
    echo date("Y-m-d h:i:sa");
?>
cs



▼시간이 좀 이상하게 나오고 있습니다. 
래서 네이버 시계와 비교하니 시간 차이가 꽤 나고 있습니다. 
8시간 정도 차이가 나네요 뭔가 시간 노출이 이상합니다.



▼PHP.ini를 열어보고 date.timezone을 찾아보면
유럽에 베를린으로 기본 설정이 되어 있습니다.


▼해당 부분을 아래처럼
Asia/Seoul
로 변경하였습니다. 
그리고 아파치를 다시 시작하게 되면 


▼ 아래처럼 시간이 한국 기준으로 나오게 됩니다.
시간 1초 정도가 안맞은 이유는 캡쳐할때 1초가 지났기 때문입니다. 






마무리

 주말이 너무 빠르네요


댓글을 달아 주세요

  • ㄷㄷㄷㄷ 2018.05.16 16:52  댓글주소  수정/삭제  댓글쓰기

    시간설정방법 고맙게 봤습니다
    작성자께서 알려주신대로 변경을 했습니다만....
    한국으로 설정되있음에도 불구하고 2달전 시간이 표시되고 있습니다.
    혹시 다른 수정방법이 있는지 여쭈어보고 싶습니다.

    • Favicon of https://gocoder.tistory.com 고코더 2018.05.18 00:26 신고  댓글주소  수정/삭제

      혹시 서버 시간 설정은 어떻게 되어 있는지확인 해보셨는지요.?
      혹은 소스상에서 date_default_timezone_set으로
      지정되어 있는건 없는지요?
      요즘 중대사가 있어 댓글이 늦었네요^^



PHP환경 셋팅을 위해 APMSETUP7 설치

안녕하세요 고코더 입니다.

오늘은 APMSETUP7을 설치하려고 합니다.
현재 도메인도 사라지고  http://www.apmsetup.com/ 설치 파일만 떠돌아 다니고 있지만
가장 간편하고 오랫동안 손쉽게 써오던 APMSETUP을 설치해보려 합니다.

최신파일이지만 PHP5 버전이라 스터디용으로도 부족하고
가벼운 테스트 용도로 쓰면 딱 적당할거 같습니다



▼ 아래 파일을 받아 압축을 풀어보세요

▼ 그리고 마우스 오른쪽 버튼을 눌러 관리자 권한으로 실행 


한국어로 설치해야겠죠


▼ 여기서 해당 메세지가 발견된다면 현재 80포트로 돌리고 있는 웹 서버를 중단시켜야 합니다.


▼ 자 이제 설치를 시작해보실까요. 32비트 프로그램 이네요


▼ 동의 하시고


▼ 기본 설정 그대로 


▼ 경로는 기본으로 하겠습니다. 왜냐하면 나중에 헷갈리자나요~




▼ 설치가 실행되고요 



▼ 설치를 마무리 하세요


▼ 업데이트 진행이 어차피 안되니 아니요를 클릭


▼ 그럼 바로 실행된 상태로 프로그램이 보입니다.
이래서 80포트를 비워 놓으라고 한거죠



▼ 브라우저에서 http://localhost/ 로 실행 해보시면 
해당 처럼 안내화면이 뜹니다. 


▼ 해당 폴더로 접근하시면 해당 index.php 파일이 보입니다.
여기서 개발을 하시면 됩니다
C:\APM_Setup\htdocs


▼ 해당 URL로 접근해보니 PHP 5버전이 보이네요.
http://127.0.0.1/?page=phpinfo
흠 그래서 이것보다는 XAMPP를 추천합니다. 



APMSETUP7 을  PHP 5.3버전으로 업그레이드 해보세요

-> PHP - APMSETUP7 / 5.3.x 업그레이드




마무리


필요한분은 설치하시면 되겠지만

학습자시라면 아래 URL에 프로그램을 설치하시는게 좋겠네요

저는 가벼운 테스트용일때만 사용합니다. 


-> PHP | APM | 설치 - XAMPP 설치하기 (APMSETUP)

-> PHP | Nginx | MariaDB - WNMP 설치 , 기본셋팅



댓글을 달아 주세요



 PHPstrom , Webstorm portable install


PHP스톰 쓰면서 이클립스에 비해  가장 아쉬운건 포터블 형태가 아닌것이다.
A, B라는 프로젝트를 동시에 진행 한다면 이클립스의 경우
A프로젝트의 셋팅 해놓은 이클립스와
B프로젝트의 셋팅 해놓은 이클립스를 다른 파일로 실행함으로써
작업 내역을 계속 이어 나갈 수 있다는 특징이 있다.

그런데 jetBrain IDE들은 알다시피 설치버전이라 editplus 처럼 하나만 설치가 가능하다.
PHP 프로젝트를 두개를 맡고 있다면 매번 폴더를 오픈해야 한다. 불편하다.



그래서 오늘은 PHPstrom , Webstorm 이 IDE를 포터블로 만드는 방법을 알아보자.

우선 먼저 써놓은 PHP스톰 강의를 보고 와도 좋을 것이다.http://gocoder.tistory.com/45

우선 최신버전 Storm을 받자 PHPstrom , Webstorm두개다 포터블로 만드는 방법은 같으니 
PHP스톰으로 예시를 들어보겠다.

▼우선 아래 URL에 가서 최신버전을 다운로드 하자



▼그 다음 받은 EXE 파일을 마우스 오른쪽을 눌러 반디집으로 열기로 눌러보자 
이전 강의에서도 말씀드렸다시피 개발자면 반디집을 쓰는 걸 추천!



▼그럼 마치 압축파일 처럼 보일것이다. 해당 이미지에 화살친 부분을 잡고 원하는 폴더로 드래그 드롭 하면 압축이 풀린다.


▼그다음 Bin 폴더에 접근해서 idea.properties 파일을 메모장이나 editPlus로 열어보자




▼해당 네모친곳을 이렇게 바꿔보자 ${user.home} -> ${idea.home}
설정 내용들을 OS 사용자 계정에 등록하는게 아니라 각 폴더에 등록하겠다는 말이다.



▼그리고 앞에 있는 주석을 제거 해보자 최종 모습은 아래와 같다.



▼그리고 다시 bin폴더에서 phpstorm64.exe 를 클릭하여 프로그램을 실행해보자.



▼설정부터 묻는 화면이 나온다 마치 처음 설치 했던 거처럼!!!!





이렇게 하면 이제 포터블한 IDE이기 때문에 프로젝트마다 하나의 스톰을 사용할 수 있다.
그리고 프로그램을 여러개를 실행할 수도 있다.
마치 이클립스 처럼 사용할 수 있다는 말이다.

참고로 추가 팁!!
해당 포터블 버전으로 사용하면 
인증 없이 무료 사용 30일마다 새로 압축을 풀어 오늘 배운 설정을 셋팅 하면
포터블로 계속 쓸수 있다.~~



마무리

jetBrains 가 IDE를 통합 할 것으로 생각 듭니다. 닷넷 IDE까지 나온거 보니 거침 없는 행보로 보입니다.


댓글을 달아 주세요




PHP스톰  HTML in PHP


오늘은 PHP스톰에서 HTML에 써져있는 PHP들의 색깔을 바꿔보려 합니다.
소스 하일라이팅 기능을 제공 받아야 겠죠

▼PHP스톰에서 HTML을 열면 아래처럼 인라인 PHP 소스가 황당한 모습으로 보입니다.
색깔도 없고 코드 어시스트도 못받는 형태입니다.




▼이제 그럼 해결방법을 찾아가보자 setting에 들어갑니다 (컨트롤+알트+s) 
그리고 검색창에 "file types"라고 검색 그럼
editor ->file types를 찾을수 있습니다.

▼그리고 PHP를 찾는다. 그리고 아래 화면 처럼 +를 눌러서 *.html 등을 입력하면 된다. +를 눌러보자


▼우선 *.html을 넣고


▼그다음  *.htm도 넣고. 그리고 Html5등 각자 필요한 확장자를 넣습니다.


▼그리고 OK를 누르고 나오면 바로 이렇게 HTML에 써져 있는 PHP를 볼 수 있습니다다. 
 





마무리

PHP스톰은 쓸수록 편합니다.
최신버전일 수록 더 좋아요











댓글을 달아 주세요



PHP스톰에서 웹으로 띄우기


PHP 스톰에 기능중 가장 편한 기능중 하나는 alt+f2를 누르면 
현재페이지를 PHP에서 바로 확인할수 있게 환경을 제공합니다.
이클립스와 비주얼 스튜디오에서 부러웠던 그 기능은 PHP스톰은 제공하고 있습니다 !!!!! 



▼방법은 아주 간단합니다.
PHP 작성중 위에 말했듯이 alt+f2를 누르면 아래처럼 브라우저 선택창이 뜹니다.

▼그리고 웹에서 바로 확인하면 502 오류를 볼수 있습니다. 흐억 
502오류 : 불량 게이트웨이 (보통 서버 문제)

▼ 해결방법은 아래와 같습다. 우선 오른쪽 아래의 해당 오류경고가 떠있습니다.
하일라이트 된 configure php interperter룰 누르면 

▼ 혹은 셋팅에 PHP 메뉴에 가면 됩니다.

▼ 설정에서 CLI interpreter룰 눌러 PHP를 선택해줍니다.
*선택값이!! 없는 사람이라면 PHP를 설치해야 합니다. (설치하고 오세요) 설치했다면 ... 를 누르면 됩니다.

▼자신이 설치한 PHP의 경로를 찾아 php excutable에서 php.exe 를 참조 시킨다. 


▼ 이제 다시 alt+f2 누르면 편하게 바로 바로 개발툴에서 확인이 가능합니다.





마무리

이제 비주얼 스튜디오 안부러운 PHP 개발 툴 시대가 열렸습니다.








댓글을 달아 주세요



크롬에서 PHP 디버깅 하기 

안녕하세요. 고코더입니다. 

자바스크립트에서 흔히 쓰는 console.log는 좋은 기능 입니다. 
브라우저에 있는 개발자 툴을 이용해 디버깅을 가능하게 하여서 
좀 더 빠르고 쉽게 개발을 가능하게 해줍니다. 

그런데 스크립트 언어에 자격으로 가능한 이 방식을 간단한 소스로
서버 언어에서 사용이 가능합니다. 방식은 아마 모든 언어가 해당 방식처럼 개발하면 사용이 가능합니다. 
우선 저는 PHP 버전을 만들어 봤습니다. 

말은 거창하지만 그냥 데이터를 받아 스크립트 언어에 담는 거 뿐입니다. 

▼ 소스는 아래와 같다. 자바스크립트 console.log로 데이터를 보내 확인 가능하게 하는 원리 입니다.

<?php
function Console_log($data){
    echo "<script>console.log( 'PHP_Console: " $data "' );</script>";
}

$testVal "테스트 데이터";
Console_log($testVal);
?>




▼생각보다 유용하고 쓸만하다.




추천 컨텐츠



console.log - 개발자도구 콘솔 창에 안보이게 하기

JetBrains - Storm 에서 크롬 디버깅 사용 / JetBrains IDE support

PHP - Deprecated 오류 란?

PHP - 오류 메세지 출력 / error_reporting

크롬 - 개발자 도구 다크테마(Dark theme)로 변경

사이트 -모바일 환경 홈페이지 반응성 테스트 / troy.labs.daum.net

크롬 - 인코딩 강제 설정 / 글자 깨짐 수정




마무리


크롬 디버깅 모드를 공부해보세요~


댓글을 달아 주세요



 WNMP로 Nginx와 PHP 마리아DB 사용하기


  1. 설치 
XAMPP 로 아파치와 PHP를 실행시켜봤다면
최근에 많이 쓰이는 Nginx와 PHP를 Wnmp라는 프로그램으로 실행해보겠습니다.

▼해당 웹사이트 접속후에 프로그램을 다운로드 (가끔 접속이 안됩니다..)



▼ 혹 해당 사이트에서 

https://sourceforge.net/projects/wnmp-env/


▼ 사이트들이 원활하지 않다면 첨부파일을 다운받아 설치하세요.

Wnmp-3.1.0.zip

Wnmp-3.1.0.z01

Wnmp-3.1.0.z02

Wnmp-3.1.0.z03

Wnmp-3.1.0.z04

Wnmp-3.1.0.z05



설치 후 실행 후 모습 XAMPP와 같은  UI다 각 start만 눌러주면 알아서 연동 후 실행됩니다.

 


  1. Nginx 설정         
     ▼엔진엑스의 간단한 설정을 해보겠습니다.
Configuration에서 nginx.conf를 실행      
     



       ▼대략 40번째 줄에 root 부분에 PHP 작업 폴더를 지정한다.
        대략 41번째 줄에 root 파일을 지정합니다.
    ## Root and index files.
    root D:/프로젝트폴더;     
    index  index.php index.html index.htm;

▼그리고 html에 PHP소스로 인식하기 위해서는 
대략 60번째줄에 location 부분을 아래처럼 바꿉니다.   
        ## Regular PHP processing.
        location ~ \.(php|html|htm)$ {     
            try_files  $uri =404;
            fastcgi_pass   php_processes;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

  1. 마리아DB설정

    마리아 DB의 초기 셋팅 정보는 이와 같습니다.
    username: root
    password: password

    해당 opeon MaraiDB Shell을 눌러 쉘에 접속해보자 

    접속해서 password 라는 비번을 입력해 접속 
    후에 아래처럼 맛보기로 입력해보자 (마리아DB가 잘 작동하는지만 확인)
--// user 보기
use mysql;
select user from user;



4.테스트 

     localhost로 접속해보자 php기반에 nginx가 실행된걸 확인하였습니다. 
     각 프로그램을 설치 후 운영하는것보다 이런식으로 GUI를 제공하는 프로그램이 나을것입니다. 
     




마무리

Nginx를 따로 다운받아 PHP와 연동하여 쓰다가 익스프레스 강의에 어울리도록 
빠르고 쉽게 사용할 방법을 찾아보다 렇게 친절한 프로그램을 발견하였습니다.
각 업무 현장에서 Nginx로 셋팅하여 개발해야 하는 분들은 애용하면 좋을거 같습니다.



댓글을 달아 주세요



PHP개발을 위한 PHP스톰 설치하기


PHP개발자 만큼 IDE를 다양하게 쓰는 언어도 없을 것이다.
이클립스, 비주얼스튜디오, 노트패드, 에디터플러스, 아톰 등등

주변에 PHP 개발자 수만큼 다양한 개발툴을 볼수 있죠.

필자는 모든 툴을 써본 결과 PHP스톰이 가장 낫다는 결론을 얻었다.
물런 이건 각자의 취향이니 한번씩 모두 써봐도 좋을거 같다.
우선 아래 다운로드 URL을 클릭하자.




▼필자는 개인적으로 PHP스톰 10버전을 좋아한다. 만약에 10버전 설치를 하고 싶다면 왼쪽 아래에 Previous version을 클릭하자 
최신버전은 첫번째 화면에서 다운로드를 클릭하면 된다.


▼10버전은 화면 중앙정도 내리면 해당 위치에 있다. 다운로드 하면 된다. 
처음 사용자라면 최신버전을 내려받자. !


▼넥스트에 시간이다. 

▼설치경로는 각자에 맞게 (SSD가 있는 드라이브에 설치하는게 좋다)

▼모든걸 체크한다. 코드 어시전트는 많을수록 좋으니깐 



▼인스톨을 누른다.


▼설치시간은 길지 않습니다.

▼완료되었군요..!

▼PHP스톰 실행시키면 최초화면입니다. Keymap만 Eclipse 기준으로 바꿔 주세요



+고코더의 추천 강의


PHP스톰을 포터블 무설치 버전으로 설치해보세요
->http://gocoder.tistory.com/82




마무리


가장 오류가 없고 쾌적한 환경이라 생각해 PHP스톰 10버전을 설치하고 사용하고 있습니다. 
첫 사용자라면 최신 버전을 설치하세요

이밖에 가볍게 파일을 열고 닫을때는 홈에디터플러스가 좋은 편이라

같이 사용하면 좋더군요. 말나온김에 홈에디터플러스 설치 과정도 올려보도록 해야겠네요~ 그럼 다음번엔 사용법으로 돌아오겠습니다.


댓글을 달아 주세요