[PHP] iconv 사용 시 텍스트가 잘릴 때
·
Development/PHP
문자열이 잘리는 경우가 발생해서 확인해보니, 인코딩 문제인 것 같았다. iconv에서 발생한 문제였다. iconv 함수로 캐릭터셋을 변경할 때, 텍스트가 잘리는 경우가 있다. 확인해보니 변환될 캐릭터셋에서 표현하지 못하는 문자를 만날 경우, 해당 문자 이전까지만 return되어 텍스트가 잘리는 현상이 발생한 것이였다. 변환하고자하는 인코딩에 '//IGNORE'을 추가하면 오류 문자는 무시하게 되어 전체 텍스트가 출력된다. $strText = iconv("euckr", "utf8", $strText); # 기존 $strText = iconv("euckr", "utf8//IGNORE", $strText); # 변경 //IGNORE 추가 이 외에도 DB에 데이터가 잘리는 경우에 테이블 인코딩, 이모티콘/이모지..
[Python] 백준 8958번 OX퀴즈
·
Study/TIL
O와 X 문자열을 입력받고, O는 정답 1점, X는 틀린것이다. 정답이 연속될 경우 점수가 누적된다. OXOO일 경우, 1+0+1+2이 된다. 테스트 케이스의 갯수 입력(n) 입력받은 갯수 만큼 반복문 실행 list로 문자열을 한 글자씩 분리 정답일 경우(O) 1씩 더하기, 오답일 경우(X) 점수를 0으로 초기화 n = int(input()) for _ in range(n): sum = 0 cnt = 0 listtc = list(input()) for k in listtc : if(k=="O") : cnt += 1 sum += cnt elif(k=="X") : cnt = 0 print(sum)
[Python] 튜플, 리스트, 딕셔너리 차이
·
Development/Python
배열(Array)-인덱스가 있는 데이터 집합. 각 인덱스에 대응하는 데이터로 이루어진 자료 구조이다. -인덱스는 0부터 시작한다. -같은 종류의 여러 데이터를 다룰 때 사용할 수 있다. -선언에 따라 1차원, 2차원 또는 그 이상의 다차원 배열로 선언할 수 있다. (보통 1~2차원 배열을 많이 이용함)배열을 사용하는 이유-하나의 변수에 같은 타입의 데이터를 한 번에 저장하여 효율적으로 관리할 수 있다. -각 데이터의 접근이 쉽고 빨라진다.파이썬 배열 종류튜플소괄호()딕셔너리중괄호{}리스트대괄호[]튜플 ()소괄호()로 작성한다. 튜플은 요소를 변경하거나 삭제할 수 없다.(=불변성) 요소가 변경되지않고, 유지되어야할 경우에 사용한다. 튜플에서 요소를 변경하려고 할 시 에러가 발생한다.리스트 []대괄호[]로 ..
[centOS7] 리눅스 ssh 접속 허용하기
·
Development/Linux
외부에서 ssh 접속할 때는 몇 가지 설정해줘야할 게 있다. ssh 서버 프로그램 설치 및 구동 22번 포트 열기 ssh 클라이언트 접속 허용 ip 확인 openssh-server 설치 최신 버전은 기본적으로 내장되어있다고 한다. 아래 명령어로 설치 여부를 확인한다. rpm -qa | grep sshd* 설치가 안되있다면, 설치한다. yum install openssh-server # systemctl enable sshd // 자동등록 # systemctl start sshd // 서비스 시작 # systemctl status sshd // 서비스 상태 확인 # ps -ef | grep sshd // 프로세스 상태 확인 설치 후 ssh 접속을 위해서는 22번 포트를 열어주어야한다. vi /etc/ssh..
VPN과 프록시의 차이
·
Development
VPN과 프록시의 가장 큰 차이는 암호화인것 같다. 보안, 익명성, 개인정보 보호 VPN은 자주 사용해보았는데, Proxy는 아직 사용해본적이 거의 없다. 프록시를 사용하기 전에, 둘의 차이점을 찾아보고 정리하였다! VPN(Virtual Private Network) VPN은 공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 바깥에 드러내지 않고 통신할 목적으로 쓰이는 사설 통신망이다. VPN을 이용하면 현재 ip를 VPN에서 제공하는 IP로 변경할 수 있는데, 사용자가 접속하고자 하는 사이트에 사용자 IP가 아닌 VPN 업체에서 제공하는 IP 주소를 이용해 접속하기때문이다. 또한 패킷이 암호화되는 경우가 많아서 사용자를 알아내기 힘들다. 완벽하게 암호화되어 보안 연결되고, 프라이버시가 보장된다는 점이..
openssl 연동의 늪(해결 완료)
·
Development/PHP
그동안의 시도 방법들... php/ext/openssl 에서 phpize로 설치도해보고 php.ini에서 extension_dir 에 /ext 추가도해보고 extension = openssl.so 추가도 해봤지만 다 에러나고 enable로 바뀌지도 않았다. 다른 서버에 셋팅해둔거 보니까 위의 작업을 하지않았는데도 enable로 되어있고, phpinfo()를 확인했을 때 소켓에 ssl이 들어있었다. Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, sslv2, tls 현재 셋팅 중인 서버에는 소켓에 ssl가 들어있지 않았다. 확인해보니 php5.3부터는 ssl을 별도로 설정해줄 필요가 없다는 것 같은데 왜이렇게 안되지는지 답답했..
리눅스 소스 설치 관련 명령어 정리
·
Development/Linux
쉘 소스 설치시 wget url로 파일 다운로드 후 tar로 압축 해제 /configure /configure configure는 소스 파일에 대한 환경설정을 해주는 명령어이다. configure뒤에 필요한 옵션을 줄 수 있다. --prefix=경로 : 해당 경로에 파일을 설치 configure에서 에러가 발생할 경우, 에러 내용을 확인 후 configure 구성내용을 변경한다. 필요한 프로그램이나 라이브러리가 없는 경우에는 설치해주면 되고, 입력한 경로에서 문제가 발생할 수도 있는데 configure 구성에서 경로가 맞게 설정되어있는지 확인한다. ex. php cofigure ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/..
PHP Notice: Use of undefined constant
·
Development/PHP
PHP Notice: Use of undefined constant PHP 5.3 이후 버전에서 발견되는 문제로 배열인덱스를 문자열로 처리해야 한다. 배열 인덱스가 문자열이니 문자열( ' ' )로 처리해 주어야 한다는 뜻이다. 아래처럼 []안의 값을 ''로 감싸주어야한다. 작성할 때 ''를 사용하는게 가장 좋지만, 수정하기 힘든 경우 php.ini파일을 수정한다. $group[id] = $group; $group['id'] = $group; php.ini 파일에서 display_errors 끄기 display_errors = off