[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 $haystack = array(‘철수’,’영희’,’진수’,’성희’,’철수’); $niddle = ‘철수’; $count = 0; foreach($haystack as $value) { if($value == $niddle) $count++; } if($count > […]

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