반응형

PHP 36

php용 wss 웹소켓 서버 구현하기

php의 웹소컷 서버사이드는 주로 ws(http용) 프로토콜을 이용해왔다. 그래서 https(ssl)프로토콜을 장착하고 나서 ws웹소켓 프로토콜을 사용할 수 없게되자, php에서 wss를 운용할 수 있는 방법을 찾아봤다. 1) 우회하는 방식 쓰기 - 이건 비추천한다. - 이걸 사용하는 내내 웹서버가 종종 다운됐기 때문이다. LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so ProxyPass /wss2/ ws://웹주소:소켓통신용포트/ 위의 3가지 모듈(mod_prox..

PHP 2023.11.08

php exec함수가 제대로 실행이 안될 때 (selinux설정 및 재시작)

우선 exec등을 통해 실행하는 법에 대해 알아본 적이 있다. https://blog.naver.com/mystery-blog/221155428797 PHP로 리눅스 명령어 실행하기 1. exec 함수 사용하기 기본 형식 : exec (문자열 명령어, 반환값 받을 배열, 에러값 받을 배열) 이 함수는... blog.naver.com 그런데, exec로 sh 쉘스크립트 등을 실행하는게 안될 때 SELINUX를 disabled 시키고 reboot해줘야 한다. /usr/sbin/sestatus 이것을 통해 SELINUX의 상태를 확인할 수 있고, getenforce 이 명령을 통해서도 SELINUX의 상태를 알 수 있다. 이때 PERMISSIVE, ENABLED, DISABLED 값이 출력되는데, DISABL..

PHP 2023.10.18

window.print() 사용할 때 css까지 잘 적용시키는 방법

여러 가지 해결방법을 찾아봤는데 크게 2가지 방법을 통해 구현할 수 있다. 1) jquery 이용하기 $(function() { var g_oBeforeBody = $('#section-to-print').html(); jQuery('.print_btn').click( function() { window.onbeforeprint = function (ev) { document.body.innerHTML = g_oBeforeBody; }; window.print(); location.reload(); }); }); 위의 방법은 내 프로그램에 적용시켜보니 시원찮았다. 2) css 이용하기 여기서 핵심은 * { -webkit-print-color-adjust: exact; print-color-adjust: ..

PHP 2023.10.05

[mysql] 테그 검색에 최적화된 함수 : FIND_IN_SET

위와 같이 쉼표로 구분된 태그 문자열을 검색할 때엔 FIND_IN_SET만큼 좋은게 없다. FIND_IN_SET(항목1, 항목2) 항목1 : 검색 문자열 항목2 : 쉼표로 구분된 대상 문자열 여기서 반환되는 값은 찾은 위치의 값이다. SELECT FIND_IN_SET('항목1', '항목1,항목2,항목3') AS result1; #1 SELECT FIND_IN_SET('항목1', '항목2,항목1,항목3') AS result1; #2 SELECT FIND_IN_SET('항목1', '항목2,항목3,항목1') AS result1; #3 SELECT FIND_IN_SET('항목1', '항목7,항목8,항목9') AS result1; #0 위 처럼 FIND_IN_SET을 이용해 쿼리를 실행하면 각각 1, 2, 3, ..

PHP 2023.09.20

[php] mecab 사전에 한국어를 임의로 등록해보자

문장에 여러가지 형태소가 존재한다. 여기서 명사 등의 체언을 뽑아내려 했다. php를 지원해주는 mecab프로그램이 있어서 이를 설치했다. https://bitbucket.org/eunjeon/mecab-ko-dic/src/master/ Bitbucket bitbucket.org 그런데 문제가 발생했다. 위 사진처럼 튀르키예가 인식이 돼야하는데 인식이 안된다. "튀르" "키" "예"이런식으로 분리돼서 나오는 것이었다. 단어를 임의로 넣어야하는 상황. 1) 설치 했던 mecab-ko-dic폴더를 지우지 말아야한다! 이곳에 다시 들어가서 작업해야한다. 튀르키예는 지역이름이므로 place에 넣었다. 2) tools폴더로 간다. cd .. cd ./tools 3) 거시서 add-userdic.sh 쉘스크립트를 ..

PHP 2023.09.14

[java] 문자열 관련 함수 응용 (substring, indexOf)

여기에 출력된 ver문자열을 제외시켜서 해당 날짜문자열을 출력하려면 어떻게 해야할까? String tmp_date = ""; int version_index = tmp_cont.indexOf(" (ver:"); if(version_index != -1) { tmp_date = tmp_cont.substring(0, version_index); } else { tmp_date = tmp_cont; } try { tmp_date = tmp_date.substring(tmp_date.length() - 14, tmp_date.length()); } catch (Exception e) { e.printStackTrace(); } 다음과 같이 해주면 된다. 핵심은 indexOf인데, int version_inde..

PHP 2023.09.11

[SQLITE] substring을 보완해줄 instr함수 (문자열 관련 함수)

원하는 문자열을 substring을 이용하면 뽑을 수 있다. 하지만 일률적으로 뽑는 까닭에 규칙이 조금이라도 흐트러지면 문제가 발생한다. 이를 보완할 방법이 바로 instr함수다. INSTR(대상문자열, 찾을문자열) 이렇게 하면 대상문자열 중 찾을 문자열의 가장 앞자리값을 반환해준다. select cont, case when INSTR(cont, ' (ver:') = 0 then SUBSTR(cont, length(cont)- 14 ,14) else substr(cont, INSTR(cont, ' (ver:') - 15, 14) end as asdf from words 이 instr을 통해 찾을 문자열의 유무에 따라 원하는 위치의 문자열을 갖고올 수 있다.

PHP 2023.09.11

[정규표현식] 개행문자를 여러번(1~n번)포함한 문자열 추출하기

https://regexr.com/ RegExr: Learn, Build, & Test RegEx RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). regexr.com 위 사이트를 통해 정규식을 테스트했다. (?=참석자 1).+(.?(.+\n)?(.+\n)?(.+\n)).+(?=\n\n) 1) (?=참석자 1).+(.?(.+\n)?(.+\n)?(.+\n)).+(?=\n\n) 참석자 1 문자열로 시작하는 것을 모두 불러온다. 2) (?=참석자 1).+(.?(.+\n)?(.+\n)?(.+\n)).+(?=\n\n) \n(개행문자)을 포함한 문자열을 불러오되 2-1) (?=참석자 1).+(.?(.+\n)?(..

PHP 2023.09.05

[Android] setSingleChoiceItems, AlertDialog 이용해서 메뉴화면을 띄우는 버튼 구현하기

다음과 같이 정렬버튼을 누르면 이렇게 나타나는 창을 구현해보고자 한다. 1) 버튼 xml 한편 background와 textColor xml은 다음과 같다. background textColor 2) 버튼과 메뉴화면 구현 //변수 final int[] checkedItem = {0}; sortBtn = v.findViewById(R.id.sortBtn); sortBtn.setOnClickListener(view -> { AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity()); //alertDialog.setIcon(R.drawable.image_logo); alertDialog.setTitle("정렬 기준을 선택하세요."); fi..

PHP 2023.09.04
반응형