[쉘스크립트] 텍스트파일의 라인을 읽어 ip와 id 구분하기

텍스트 파일의 각 라인을 읽어 해당 라인에서 ip 와 id 를 구분해서 출력하는 코드이다. 텍스트의 파일은 아래와 같은 형식이다. ip 와 이름-id 는 탭으로 구분된 상태이다. 192.168.10.100 홍길동-gildong 192.168.10.101 김철수-kcs0297 쉘스크립트 코드는 아래와 같다. #!/bin/bash IPS=() IDS=() i=0 while IFS=” read -r line || [[ -n “$line” ]]; do IFS=$’\t’ tmp=($line) IPS[${i}]=${tmp[0]} str=${tmp[1]} IFS=$’-‘ tmp=($str) […]

Read More

[PHP] 방문로그에 특정 에이전트 제외하고 로그 남기기

PHP 에서 특정 사용자 에이전트(예: Googlebot 등)를 제외하고 방문로그를 DB에 남기는 코드이다. 방문로그 테이블 구조에 따라 아래 코드는 수정된 후 사용되어야 한다. <?php $_AGENT_EXCLUDE = array( ‘mod_pagespeed’, ‘bot’ ); if (!isset($_SESSION[‘ss_visit_log’]) || !$_SESSION[‘ss_visit_log’]) { if (str_replace($_AGENT_EXCLUDE, ”, $_SERVER[‘HTTP_USER_AGENT’]) == $_SERVER[‘HTTP_USER_AGENT’]) { $sql = ” insert into `{$nt[‘visit_table’]}` ( vi_date, vi_time, vi_referer, vi_agent, vi_ip ) values […]

Read More

[PHP] xml 포맷의 데이터를 배열(Array)로 변환

curl 등을 사용해 API 콜을 보내고 리턴 받은 xml 포맷의 데이터를 배열(Array)로 변환하는 코드이다. <?php function convertArray($object) { return json_decode( json_encode( $object ), 1 ); } $url = ‘http://api.example.com/xml’; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1); curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_ENCODING, ‘gzip,deflate’); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1); curl_setopt($ch, CURLOPT_TIMEOUT, […]

Read More

[PHP] MySQLi prepared statement 결과를 배열로 얻기

아래의 쿼리를 실행한 후 MySQLi prepared statement(이하 stmt) 의 결과를 field=>value 형태의 배열로 얻는 방법이다. select name, email from member where id = ‘abc’ stmt 실행 후 bind_result 메서드를 이용해 각 변수에 값을 얻게 되는데 쿼리문에 필드가 많을 경우 각각의 변수를 할당해야 하기 때문에 조금은 짜증나는 작업이 된다. 이 때 필드명을 키로 하는 배열로 결과를 […]

Read More

[PHP] 문자열에서 특수문자 제거

검색 기능을 구현할 때 검색어에 포함된 특수 문자를 제거할 목적으로 만든 PHP 함수이다. function get_search_string($stx) { $stx_pattern = array(); $stx_pattern[] = ‘#\.*/+#’; $stx_pattern[] = ‘#\\\*#’; $stx_pattern[] = ‘#\.{2,}#’; $stx_pattern[] = ‘#[/\’\”%=*\#\(\)\|\+\-\&\!\$@~\{\}\[\]`;:\?\^\,]+#’; $stx_replace = array(); $stx_replace[] = ”; $stx_replace[] = ”; $stx_replace[] = ‘.’; $stx_replace[] = ”; $stx = preg_replace($stx_pattern, $stx_replace, $stx); return $stx; } 패턴과 […]

Read More