삽질의 현장/- PHP 18

[삽잡이 :: Laravel] Laravel Dusk 환경 셋업

Laravel Dusk는 Laravel 5.4 부터 사용이 가능한 웹 브라우저 테스트 라이브러리입니다.ChreomDriver와 Facebook PHP Web driver를 사용하고 있어Web UI 테스팅을 하기 위한 엄청난 녀석(?)이라 할 수 있습니다. Laravel ~ 칭찬해~ 자 그러면, 간단하게 Laravel Dusk 환경을 셋팅하도록 해보겠습니다. 우선, 각 자신이 사용하고 있는 OS에 맞게 Laravel 설치가 기본적으로 되어있어야 합니다.이를 위해, 먼저 Composer를 설치합시다. 저는 Window를 Base로 셋팅에 들어가겠습니다. https://getcomposer.org/Composer-Setup.exe(composer windows download link) 설치가 완료되었다면, ..

[삽잡이::php] 문자를 치환하라! str_replace()

URL에 같이 딸려오는 파라메터들...이와 같은 파라메터들을 추출하여 사용할 수 있습니다. 그런데, 이 URL에는 한글과 특수문자들이 포함될 수 없기에 우리는 URL을 인코딩해서 보내줘야합니다. 이와 같이 날라온 memo의 값을$sMemo라는 변수에 담았다고 가정합시다. 1234cs 과연 출력은 어찌되었을까요? 잉?? 뭐야아~~ > 가 &rt; 로 바뀌었습니다... 예.. 그래요 아까 말씀드린 것과 같이 URL의 특수문자가 인코딩이 된 것입니다. 그런데, >를 꼭 사용해야한다면!? 이때 str_replace()함수를 사용하면 됩니다. 이 친구는 바로!문자를 치환해줄 수 있는 php 함수입니다. [출처_ PHP] 이와같이 치환할 문자열을 첫번째 인자로,대체할 문자를 두번째 인자로,마지막으로 문자열을 뒤질(..

[삽잡이::php] 시야를 넓혀라! unset( )응용!

(출처_ Daum) 정정당당히 정면으로 돌파하는 정공법. 항상 정공법만이 답이라고만 할 수 없듯이,여러 상황속에서는 비틀어보는 시각도 필요한 것 같습니다. 오늘 하루를 보내며 넓은 시야로 문제를 바라보는 것도 좋겠다고 느낀 하나의 사례를 간단하게 메모하고자합니다. 삽잡이는 이와 같은 JSON 형식의 Array를 받아와이리저리 가공해서 쓸 일이 있었습니다. 반복문을 통해 Key와 Value를 각각 나누고또 그 나눈 값에서 반복문을 사용하여 데이터를 잘개 쪼개는 코드를 구현하였죠...(아직 초보라... 생각이 많이... ㅠㅠ) 1234567891011Colored by Color Scriptercs 대충 이런식... 중복으로 반복문을 사용하는 것에 대해 마음에 들지 않았었는데 어쩔 수 없었다 생각했습니다.그..

[삽잡이::php] 지워버리겠어! unset( ) (isset( )은 꼽사리)

"Unset a given variable"주어진 변수의 설정을 해제하겠다. PHP에서는 주어진 변수를 파괴하는 어마어마한 함수가 있습니다. [출처_ PHP] 예 그렇습니다.바로, unset() 이라는 함수입니다.인자로 들어가있는 변수의 메모리를 해제해주는 것입니다. 이와 같은 Array이가 있다고 가정해봅시다. 여기서 두번째 데이터를 unset()의 인자로 포함시키면 어떻게 될까요? 12345Colored by Color Scriptercs 자... 메모리를 파괴해봅시다. 정말 이렇게 사라지게 됩니다. 이와 반대 개념으로 inset()이라는 함수도 존재합니다.is set?뭔가 느낌이 오지 않으십니까?하하... 그렇습니다. 있는지 확인하는 함수입니다. 12345Colored by Color Scripte..

[삽잡이::php] 느슨한 PHP 변수 타입검사! 함수까지 담는다

PHP 코드를 조금씩 개선하고자 분석하고 있었습니다.이 와중에 중복되는 코드이지만다른 class 파일에 있는 메서드들 때문에 어떻게 줄일까 고민하고 있었습니다. 그런데 신기하게도 함수까지 변수에 담을 수 있어서유용하게 코드를 수정한 경험이 있습니다.우와~ 뭐라꼬~?! 이에 감동하여 느슨한 언어 PHP 변수의 데이터형 결정은 어떻게 되는지간단하게 정리하고자 합니다. 좋아 좋아~ PHP 언어에서 변수는 '$'를 붙여 사용합니다. 달러~ 달러~ 달러는 미국의 돈~~ 아무튼... PHP는 느슨한 언어입니다.이유는 변수에 값이 할당 될 때 즉, 담고있는 타입에 따라 자동으로 변환되기 때문입니다. PHP는 변수의 선언이 없는 것입니다. 12345678//cchar ch;int i;double d; ch = 'a';..

[삽잡이::php] cURL(Client URL)에 대해서 감을 익혀보자!

코드 분석중에 보인 cURL...처음엔 뭔가했습니다...그래서 얕게나마 알아가보며 정리를 해보았습니다... 부족한 내용인 것은 함정... 하.하.하. cURL은 Client URL의 줄임말입니다. 예 그렇습니다.물론 URL도 줄임말이지요. 몰라서 안쓴게 아닙니다.... Client Uniform Resource Locator 예 그래요... 인터넷에서 찾아봤어요.아무튼... cURL은 PHP에 있는 라이브러리입니다. (출처_ PHP) php 매뉴얼을 보게 되면많은 다른 타입의 서버들과 프로토콜로부터 연결 및 통신할 수 있도록 해준다고합니다. 예 그렇습니다.여기에 있는 프로토콜에는 http, https, ftp 등등이 있군요. 삽잡이는 Jenkins라고 하는 CI툴 때문에이 cURL을 접하게 되었습니다. ..

[삽잡이::php] 꼼꼼하게 체크하자! in_array(), ===(identical)

예를 들어 이와 같이 Qeury문을 날려 결과를 받아오는 코드가 있다고 생각해보겠습니다. 자... 예외 처리를 해봅시다.어떻게 하시겠습니까!?뭐가 그리 어렵다고~ 그냥 empty() 함수 써서 확인하면 되지~ 이얄~~~~~ 좋습니다! 굳!굳!굳! 하지만, 조금 더 신중해야할 필요가 있습니다.생각해보겠습니다. 위에서 언급한 것과 같이 NULL일 경우? 이외에도 여러가지로 신경써주면 좋을 듯합니다. 예를 들어 return 값이 제대로 된 결과 값이 아닌 false 인지~ 아니면, return 값이 올바른 타입인지 말입니다. 죄송합니다. 다 꺼지라니~~~ 하지만, 신경을 잘 써줘야겠지요?혹시 모를 오류에 대비를 해야지요! 그래서 우리 이렇게 신경쓰면서 코딩합시다. return 값이 null인지 확인하기! 결과..

[삽잡이::php] php에서 javascript를 호출해보자

php 언어는 대표적인 서버 사이드 스크립트 언어중 하나입니다.즉, 서버에서 실행되는 언어입니다. 서버에서 실행되는 언어라는 의미를 이해하기 위해서는우선, 서버에 대해서 알아야할 것 같습니다. 우와 그래서 Server가 뭐야~ 예 그렇습니다.서버는 어떤 '업무'를 수행하기 위해 설정되어있는 컴퓨터라고 볼 수 있습니다. 여러분이 웹 사이트를 하나 운영한다고 해보겠습니다. 이처럼 Client로 부터 요청이 오면Server는 Client로부터 들어온 요청에 대한 서비스를 제공해줍니다. 아~ 이러한 서버에서 사용되는 언어가 서버 사이드언어라고 하구나~ 예~ 그 중에 삽잡이는 PHP 언어에 대해서 언급을 한 것이구요 Javascript는 성격이 조금 다릅니다.바로 클라이언트 사이드 스크립트 언어이기 때문입니다.즉..

[삽잡이::php] Web에 올라온 File을 Parsing해보자! file_get_contents()

Web에 Log 파일을 올려놓고Log 내용들을 읽어와 Parsing해야할 일이 있었습니다. 이럴 때에는 어떻게 해야할까요? 예 그렇습니다. 인자로 url을 넘겨주면 됩니다. 그러면, file_get_contents() 함수와이전에 배운 정규표현식,(참고_ 정규표현식) preg_match_all() 함수를 통해(참고_ preg_match) File 내부에 이메일이 있는지 확인해보는 예제를 만들어보겠습니다. 123$sRegex = "/^[a-zA-z0-9](-_\]?[a-zA-Z0-9])*@[a-zA-Z0-9]([-_\.]?[a-zA-z0-9])*\.[a-zA-z]{2,3}$/i";$sContents = file_get_contents(url 위치);$iMatches = preg_match_all($sReg..

[삽잡이::php] foreach 삽질기... 중복키가 날 괴롭혀~

foreach문은 형태는 조금씩 다를지라도사용법은 비슷할 것입니다 이전에도 포스팅했었지만,php 코드에서 연관 배열이라는 기능을 사용하여index를 숫자가 아닌 Key 형식으로 사용할 수 있습니다. (참고_ foreach에 대해서 간략한 소개) 그런데 말입니다...삽잡이는 최근 JSON 형식의 데이터를 받아와서Parsing을 통해 데이터를 가공할 일이 있었습니다. Programming이라는 Key와 JSON 형식의 Value가 쌍으로 이루어져 있는중첩된 JSON 형식의 데이터를 가지고 놀아야 했습니다. 하지만, 저는 가지고 놀 수 없었습니다... 왜~ 뭔일이야~ 위와 같은 Json 형식을 foreach 문을 통해 출력하고자 했으나계속 마지막 줄의 데이터만 Paring 되는 것 아니겠습니까... 아오 속터..