게시판이나 제목을 표시할 때 너무 길어서 잘라서 사용해야하는 경우가 있습니다. UI 쪽에서 자르는 방법도 있지만 내용과 같이 너무 긴 내용은 PHP에서 잘라서 처리하는게 좋은 방법입니다. iconv_substr 이나 mb_substr의 경우 한글처리가 가능해서 한글짤림이 없이 잘라올 수 있습니다.ICONV_SUBSTR(PHP 5, PHP 7, PHP 8)문자열을의 일부를 가져오는 함수이며 인코딩을 선택할 수 있습니다.iconv_substr( 문자열 , 시작지점 , 길이 , "utf-8" );MB_SUBSTR(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)문자열을의 일부를 가져오는 함수...
PHP에서 개발을 할 때 TIME ZONE이 설정되지 않은 경우에 한국 시간이 아닌 다른 시간이 표시되는 경우가 있습니다. PHP 에서 date 함수를 사용할 때 발생할 수 있으며 특정 웹 호스팅이나 리눅스 서버를 설치하는 경우 발생합니다.일반적인 호스팅은 문제가 없지만 그렇지 않은 곳도 있어 아래와 같이 설정이 필요합니다.PHP 소스에서 지정하는 방법데이터베이스 연결이나 공용으로 사용하는 소스에 추가하여 사용하게 됩니다.date_default_timezone_set('Asia/Seoul');echo date("Y-m-d H:i:s");LINUX 서버 php.ini 파일에서 설정php...
PHP에서 이미지 파일을 서버에 업로드하는 경우가 많이 있습니다. 이전 서버는 PHP 7.4 버전이고 새로 설치한 버전은 7.0이라서 버전 차이 또는 함수 오류인줄 알고 수정했지만 결과는 동일하게 오류가 발생했습니다. 파일 커미션 문제일것 같아서 FTP로 파일 커미션을 707로 변경해보니 아래와 같은 오류가 발생하고 있습니다. FTP로도 업로드가 불가한걸 보면 Apache 설정문제라고 볼 수 있습니다.소유자 그룹을 확인해보니 apache로 설정되어 있습니다. SSH로 접속해서 해당 계정을 변경하는게 필요합니다.# ls -la아래와 같이...
웹에디터나 textarea를 통해 html 테그를 저장하고 해당 내용에서 이미지 테그 + 이미지 링크를 추출하는 정규식 입니다. 용도에 따라 패턴을 변경하여 사용할 수 있습니다. 사용하는 함수는 preg_match_all 입니다.preg_match_all전체의 정규식 일치되는 내용을 실행 후 리턴 해 줍니다.1. 소스화면$contents = "테그내용";
//정규식을 통한 이미지 테그 추출
preg_match_all("/]*src=["']?([^>"']+)["']?[^>]*>/i", $contents, $str_out);
// 테그만 포함
print_r( $str_out[0] );
// 링크만 포함
print_r( $s...
유튜브에서 영상을 공유하기를 이용하여 태그로 가져오게 되면 사이즈가 지정되어 가져오게 됩니다. 데스크 탑 전용 사이트라면 상관이 없지만 모바일 및 테블릿에서 접속하게 되면 화면 좌우에 스크롤이 생기면서 디자인이 깨지기도 하고 영상 부분만 크게 차지하는 경우가 있습니다.이런 경우에는 기존 태그에 새로운 태그를 추가하여 처리하는 방법이 있습니다.저 같은 경우는 먼저 스타일을 추가하고 PHP 에서 내용을 치환하여 처리하고 있습니다..video-wrap {position:relative; padding-bottom:56.25%; padding-top:30px; ...
모바일 웹과 데스크탑 모드에서 다양한 소셜 네트워크 서비스로 공유하는 기능을 많이 사용하고 있습니다. 자주 사용하는 SNS 버튼을 추가하여 기능을 개발하는 경우도 있지만 그러한 경우 해당 서비스의 API 모두 받아야 하는 경우가 많습니다. 예를 들어 카카오 공유 기능을 사이트에 추가하고 싶다면 Kakao Developers 사이트에 들어가 어플리케이션을 추가하여 앱 아이콘과 앱 이름, 사업자 명 등을 추가하고 플렛폼 환경과 개발 소스를 받아 개발을 해줘야 합니다. 공유 버튼이 몇 개 없을 때에는 어렵지 않지만 여러 개를 넣는 ...
프로그램 개발자나 웹 디자이너의 경우에는 웨일이나 크롬 브라우저의 개발자 도구 F12 기능을 자주 사용하게 됩니다. 잘 사용하고 있다가 어느 순간에 창이 자동으로 닫히는 증상이 발생하였습니다. 컴퓨터를 재 부팅하고 실행하고 있는 있는 보안 프로그램을 찾아봐도 어떤 앱이 작동하는지 확인하기 어렵네요.보안 프로그램이 개발자 도구를 자동 닫는다는 것은 알고 있었지만 어떤 앱 인지 몰라서 다 지우고 사용하게 되어 불편한 부분이 있어 동일한 증상이 있는 경우 해당 앱을 지울 수 있도록 안내 하고자 합니다.개발자 도구는...
보안서버란?사용자 컴퓨터에서 서버와 통신을 할 때 해당 정보가 네트워크에 노출됩니다. 이런 문제를 해결하기 위해서 만들어진 게 SSL 이고 한글로는 보안 서버라고 말하고 있습니다. 개인정보 보호 정책이 강화되므로 회원 가입 및 개인정보를 받는 홈페이지에서는 법적으로 보안 서버가 필수가 되고 도입하지 않는 경우 벌금이 부과되고 있습니다. 하지만 홍보가 부족해서 인지 도입을 하지 않은 사이트도 많이 발견되지만 개인정보 유출의 문제가 생기는 경우 조치를 하지 않은 부분에 대해 더한 벌금이 부과될 수 있습니다.유료...
무료로 많이 사용하던 데이터베이스였던 MySQL이 오라클에 인수되고 나서 라이센스 정책에 문제에 해결하고자 나온 오픈소스 RDBMS MariaDB 이다. MySQL 출신 개발자가 참여해서 세운 제단이라서 그런지 기존 MySQL 마이그레이션과 호환성에서도 어려움 없이 이동이 가능하다.무료 버전도 있고 상용화 버전인 Enterprise Server 상품이 있으며 무료 버전은 MariaDB Server 라고 한다. MySQL 8.X 버전이 무료로 배포 되고 있으며 호스팅 회사에서도 MariaDB 상품도 적극 판매하고 있어 접근성이 좋다.RDBMS 시...
홈페이지 리뉴얼로 새로 제작하였거나 도메인을 이전하게 되면 다른 PC나 모바일에서는 접속이 가능하지만 사용 중인 PC에서는 접속이 불가능한 경우가 있습니다. 홈페이지를 접속할 때 DNS 정보를 확인하여 홈페이지가 연결되어 있는 IP를 저장한 캐시가 남아 있어 생기는 문제 입니다. 이런 경우 시간이 지나면 자동 해결 되기도 하지만 캐시가 남아 있어 접근이 불가능한 경우가 있습니다.모든 브라우저를 닫은 후 윈도우 명령 프롬프트를 실행 하여 아래 명령을 실행 해 줍니다.1. 윈도우 + r 키를 눌러 실행 창이 표시되면 cmd 명...
문자열의 자르거나 합치고 치환하는 많이 사용하는 함수를 정리하였습니다.문자열을 이용하는 쿼리 사용이 필요한 경우 문자 자르기 치환 공백 제거 등 다양하게 활용할 수 있습니다. MySQL과 호환성이 좋은 MariaDB에서도 사용할 수 있습니다.자주 사용하는 함수 이므로 습득 하거나 자주 활용하는 것을 추천 합니다.MySQL 문자열 관련 함수 요약ASCII(문자) : 문자의 아스키 코드 값 리턴 한다.SELECT ASCII('문자');CONCAT('문자열1','문자열2','문자열3'...) : 문자열들을 이어준다.select concat('ASP,','PHP,','SQL',' WEB STUDY...
보안 서버 SSL 사용을 위해서는 유료 서비스를 이용하는 경우가 많지만 개인용도 또는 개발 용도라면 무료로 제공하고 있는 Let's Encrypt 서비스를 이용하는 것도 좋은 방법 입니다. 기본으로 제공하는 호스팅도 있으며 자체 서버가 있다면 설치하여 여러 도메인으로 다양하게 설치하여 이용할 수 있습니다.무료라서 주의 사항은 발급이 되는 인증서는 3개월간만 유지가 가능하며 2달마다 업데이트를 권장하고 있으며 안내 이메일이 발송되기에 확인 후 연장할 수 있습니다. 자체 서버를 운영하는 경우 cron 서비스를 이용하여 1달에 ...
부트스트랩은 모바일과 데스크탑에 맞게 반응형으로 작동하는 홈페이지 서비스가 활성화 되면서 함께 인기를 끌고 있는 오픈 소스 프레임 워크입니다. 모바일을 우선으로 접근하는 방식을 이용하여 다양한 기기에서 더 빠르고 쉽게 디자인할 수 있는 강점이 있습니다. HTML, CSS, JS에서 사용할 수 있으며 PHP, Node와 같은 프론트 엔드 UI/UX 구성에도 도움이 됩니다. 디자인 적인 요소가 기본 적용되기 때문에 개발자는 관리자 이외에도 쉽고 간편하게 활용됩니다.공식사이트는 https://getbootstrap.com/ 주소를 참고 합...
네이버, 다음, 구글, Bing 등의 검색엔진은 여러분의 웹사이트를 검색로봇이라는 프로그램을 이용해서 수집 해 가고 다양한 사용자들에게 검색을 통해 링크와 이미지, 문서 정보를 제공하고 있습니다.robots.txt 파일이 없으면 홈페이지의 모든 데이터를 수집하는 일이 생깁니다. 관리자도 없고 개인정보를 취급하지 않는 사이트라면 큰 문제가 없겠지만 본인도 모르는사이에 개인정보나 이미지가 검색에 노출되어 문제가 생기는 경우가 많습니다. 그렇기에 해당 문서를 설정하여 검색엔진에게 수집정책을 정해주는게 필요합니다.robot...
웹사이트를 제작하는 일을 하고 있어서 검색에 도메인이 정확하게 등록되고 연결되기 위해서 필요한 작업이 있습니다. 예시를 위해 해당 사이트 도메인으로 설명을 드리려고 합니다.해당 사이트의 도메인은 https://www.chr.kr 이라는 도메인을 사용하고 있습니다. 그래서 네이버나 구글에도 해당 도메인으로 등록 신청을 해 놓았습니다. 그렇지만 사용자가 직접 입력하는 경우 번거롭기에 chr.kr 이라는 도메인만 입력하는 경우가 있습니다. 이런 경우 별다른 기능이 없는 일반적 사이트는 큰 문제는 없지만 아래와 같이 문...
보안 서버에 SSL을 적용하기 위해 유료 서비스를 고려할 수 있지만, 개인용 또는 개발 환경이라면 무료로 제공되는 Let's Encrypt 서비스를 활용하는 것도 좋은 선택입니다. 자체 서버를 운영 중이라면 Let's Encrypt를 설치하여 여러 도메인에 유연하게 적용할 수 있습니다.무료로 제공되는 만큼, Let's Encrypt 인증서는 3개월의 유효 기간을 가지며, 2개월마다 갱신하는 것을 권장합니다. 갱신 알림 이메일이 발송되므로, 이를 확인 후 갱신을 진행할 수 있습니다. 자체 서버를 운영한다면 cron 서비스를 이용하여 한 달에 한 번씩 ...
Cent OS가 서비스 지원이 종료되면서 Rocky Linux를 사용하려고 하고 있습니다.구 서버를 그대로 유지하는 건 보안에서 안전하지 않아 새로운 버전으로 설치하는 과정을 안내 하려고 합니다.MariaDB 설치는 이전 글 https://www.dut.kr/dev/510 링크를 참고 하세요. 1. Apache 웹 서버먼저 패키지들을 업데이트 해 줍니다. 내용이 길어 아랫 부분은 생략 합니다.# sudo dnf update -y
Rocky Linux 9 - BaseOS 8.0 MB/s | 2.3 MB 00:00
Rocky Linux ...
이제는 SSL 인증서가 필수라서 서버를 새로 설치할 때 무조건 세팅하게 된다.새로운 서버에 설치하다 보니 이전에 보지 못한 에러 메시지가 표시되어 해결 방법을 공유하고자 한다.설치를 완료하고 명령을 입력하면 이미 다른 인스턴스가 이미 실행 중이다라고 나와서 진행이 안된다. Another instance of Certbot is already running. 제거를 하고 다시 설치를 해도 동일한 메시지가 표시되는 걸 보니 설정 파일이 남아 있는 것 같다.# certbot renewAnother instance of Certbot is already running.인증서 발급에서 Lock이 걸...
PHP mail 명령어를 이용해서 이메일을 발송하면 무조건 스팸으로 들어가는 문제가 생겼다.설정 파일도 바꿔보고 재 설치해도 동일한 증상이 발생하였다.화이트 도메인 설정의 문제도 확인 해 보았지만 문제가 없었다.네이버에서 받은 이메일 원문을 확인해보니 spf 부분에 domain of nobody@pipeline 라는 도메인으로 발송자가 처리되어 있는 문제를 확인하였다.{중략}
ARC-Authentication-Results: i=1; mx.naver.com; spf=pass (mx.naver.com: domain of nobody@pipeline designates 49.247.147.171 as permitted ...