- Today
- Total
목록Web/Back-End (9)
CODE CAVE
쇼핑몰을 운영하는 회사에서 종사하시는 개발자 분들은 광고 시스템과의 연동 등의 사유로 전체 상품리스트를 XML로 뽑아야하는 경우가 있을 것이라고 생각되는데요. 이번 포스팅에서 제가 실제로 회사에서 활용한 코드를 가지고 상품 목록을 XML로 출력하는 방법에 대해서 얘기하고자 합니다. 개발 환경은 APM(Apache+PHP+MySQL) 입니다. PHP의 버전은 5.5구요! 소스코드는 아래와 같습니다. 제일 먼저 해야할 부분은 응답헤더 설정입니다. 웹은 기본적으로 Content-Type이 html 이므로 이것을 xml로 변경해주어야 합니다.header("Content-type: text/xml");주의할 점으로는 header 위에는 아무런 공백이 있어선 안됩니다.공백이 있으면 인식하지 못할 수 있습니다. 그리..
이번 포스팅에는 모바일 기기 체크 하는 방법 중에도 PHP로 하는 방법을 공유하고자 합니다. 보통 접속 기기의 종류는 자바스크립트에서 많이들 확인 하실거라고 생각이 되는데 RestAPI 방식이나 MVC로 로직이 분리가 되어있는 서버가 있을 경우 클라이언트(뷰) 단인 자바스크립트가 아니라 컨트롤러가 뷰로 데이터를 넘길때 여기에서 요청한 쪽의 헤더를 보고 모바일인지 데스크탑인지 확인하여 각기 다른 데이터를 리턴하면 될 것 같습니다. 다시 말해, 새 API를 아예 새로 받는 것보다 컨트롤러에서 return [view] 했던 것을 모바일 기기인지 체크하여 모바일이면 json 반환, PC면 뷰를 반환하도록 처리하면 구지 두번 작업하지 않아도 될 것입니다. 생각보다 단순합니다. 소스는 아래와 같습니다. //Chec..
euc-kr.... 오랜만에 다뤄보네요 ㅋㅋ 이젠 없을 줄 알았는데 새로 맡은 쇼핑몰 프로젝트가 독립몰인데 euc-kr 이네요 하.. 투정은 그만하고 본론으로 들어가겠습니다.. phpmyadmin 을 설치하시고 euc-kr로 구성된 디비의 SQL 덤프 파일을 가져오기(import) 하실 때 여기서 파일 문자셋을 고르셔야 하는데, 이때 euc-kr이 없으신 분들 계실 겁니다. euc-kr은 이 세상에서 사라져야 마땅할 캐릭터셋이지만 그래도 어쩌겠습니까 ㅠㅠ 아직도 euc-kr의 흔적이 남아있는게 꾀 있는걸.. 참고로 저는 아마존 EC2 서버에 우분투를 깔고 phpmyadmin을 사용하였습니다. phpmyadmin 설치는 여기를 참조하세요. 해결 법은 의외로 간단합니다~ 1. 설정 파일 열기 (루트만 수정할..
PHP 버전이 어느정도 되면 (저는 5.5에서 테스트) Warning이랑 Notice 로그가 많이 뜨죠.. 저는 포트폴리오 때문에 웹사이트 개발 했던 것들을 파일로 다 보관했는데,어느날 노트북을 바꾸고 나서 제 프로젝트를 열어보니 난리가 나더라구요 저 이상한 로그들로요.. PHP 버전이 올라가서인것 같아요..아무튼 저런 로그나 에러가 안뜨게 개발하는게 제일 베스트겠지만 어떤 만들어진 프로젝트에 참여하게 됐다거나 인수인계를 받았다거나 서버를 옮겼을 때 에러나 워닝,노티스 로그가 엄청나게 뜰 수 있습니다.예를 들어 if(!$_SESSION) 은 세션이 없다면 수행하는 if문인데 $_SESSION 자체가 없을 경우 Not define 에러가 뜹니다.그래서 if(!isset($_SESSION)) 이렇게 해주어야..
라라벨은 요새 뜨고 있는 PHP 프레임워크입니다.저도 라라벨을 이용해서 프로젝트를 한 5개 정도 진행했었는데요~매우매우 편리 합니다. 일반적으로 말씀하시는 성능이슈에 대해서는 아직 한번도 못느껴봤습니다.서버 사양이 그리 좋은 것도 아니었는데 말이죠 일단 라라벨은 PHP 버전이 최소 5.6 이상 이여야하고 컴포저(composer)는 필수 입니다.근데 컴포저를 사용하는 등의 설정 문제로 일반 호스팅 업체에 받은 서버로는 설정이 안되는 경우가 있더라구요, 일반호스팅 업체는 PHP 쪽을 애초에 설치해서 주는데 이걸 바꾸려고 고객 센터에 전화해보니 바꿀수 없다고.. 독립 서버 호스팅을 받던가 하라고 하네요~ 어디인지는 말안하겠습니다만대부분 일반호스팅이라면 다 똑같을거라고 생각됩니다. 그래서 서버는 아마존, 그리고..
저번에 파일 업로드를 포스팅 했었는데요~ 링크는 아래를 클릭하세요 ㅎㅎ http://kkotkkio.tistory.com/6 파일 업로드 기능을 사이트에 추가하셨다면 당연히 다운로드도 만드시겠죠? 업로드한 이유는 사용자와 공유하며 다운 받기 위함이니까요 ㅋㅋ 다행히 다운로드도 어렵지 않습니다. 짧아요~ 복붙해서 쓰셔도 좋구요 대략적으로만 설명드리면 php 파일 다운로드는 http 요청의 헤더를 변경하여 구현할 수 있습니다~ 위에서는 헤더의 타입과 길이, 파일이름 등을 지정하여 다운로드를 눌렀을 때 저 헤더와 파일을 합쳐서 응답하게 되는 것입니다. 위 소스에서 urldecode는 원본파일명에는 한글이 있을 수 있으므로 사용한 것 이구요, 파일의 전체 경로로 파일 사이즈를 구해오는게 filesize() 입니..
PHP에서의 파일 삭제는 업로드, 읽기, 쓰기 보다 훨씬 간결합니다. 뭐 다른 언어도 삭제는 다 간단하긴 하지만 ㅋㅋㅋ 아무튼 PHP에서는 unlink 라는 PHP 내장함수만 쓰면 끝! @unlink("../data/board/".$old_file); 위의 한줄이 끝입니다. ㅎㅎ 간단하죠? 매개변수로 파라미터로 파일의 경로명을 적어주시면 됩니다. @를 붙힌 이유는 만약 매개변수로 넘긴 파일명은 가진 해당 파일이 없을 경우에 에러가 출력되는데 없으면 없는대로 안지우게 될텐데 구지 사용자한테 에러를 보여줄 이유가 없기 때문에 붙힌 것입니다. 사용자 친화, 또는 서비스 신뢰를 위해서 왠만하면 일반인들한텐 외계어로 보일만한 PHP 에러는 보여지지 않는게 좋겠죠 ㅎㅎ 만약 파일을 디비화 시킨것이 있다면 통일성을 ..
PHP로 만드는 파일 업로드는 매우 심플합니다. 시스템 프로그래밍 (유닉스)를 해보셨다면 아마 더 낯 익으실 거예요 이 포스팅은 업로드만 다루고 있구요, 파일을 읽고 쓰는 것은 이번에 다루진 않지만 read, write도 PHP 언어 자체가 C언어 기반이라 그런지 좀 비슷한 감이 있어서 C언어 하셨던 분들은 한번 찾아서 공부해보시는것도 추천드립니다! 아무튼 본문으로 들어가서 업로드를 설명드리자면 매우 간단 명료 합니다. 방법은 아래와 같습니다. 1. 파일 업로드 할때는 폼에 꼭 enctype을 붙혀줘야 합니다.보통 PHP코드만 작성하고 이 enctype="multipart/form-data"를 안적어놔서 안되는 경우가 굉장히 많습니다.여러 질문 사이트의 질문을 보다보면.. 저 또한 오랜만에 파일 다루면 ..
파일 형식 체크 함수 (이미지, 그 외) function file_chk($file, $type = ""){ $file_ext = explode(".", strrev($file)); $file_ext = strrev($file_ext[0]); if(!$type or $type == "Gallery"){ //타입이 갤러리일 경우 $img_ok = array("gif", "png", "jpg", "jpeg", "bmp", "GIF", "PNG", "JPG", "JPEG", "BMP"); if(!in_array($file_ext, $img_ok)) page_move("이미지 파일만 업로드 가능합니다.", false); } else { //갤러리 외의 타입은 웹 코드 파일을 막는다. $img_no = array..