년도별 글 목록: 2004

나비효과와 일기장

외국에 개봉한지는 좀 되었지만, 국내에서도 개봉하여 좋은평가를 받고있는 영화 나비효과(Butterfly Effect)를 봤습니다.

다들 아시다시피 , ‘나비효과’는 중국 북경에 있는 나비의 날갯짓이 미국 뉴욕에서 허리케인을 일으킬 수도 있다는 이론 입니다. 이것이 카오스이론으로 발전하는 계기가 되었다고 하는데, 사실 영화의 내용에 나비는 별로 나오지 않습니다 🙂

하여튼 , 어린시절의 작은 일/기억들이 현재의 자신에게 영향을 미친다는 얘기를 가지고 영화를 풀어가는 데요. 나름대로 재미도 있고, 오랜만에 몰두하면서 본 영화였습니다. 메멘토 같은 류의 영화를 좋아하시는 분이라면 다들 즐겁게 감상하실수 있을듯 합니다. 왠만한 내용은 스포일러가 될듯하니 적지는 않겠습니다. 아무런 정보없이 보시는게 더욱 좋을듯 합니다. 다만.. 감독판과 극장판의 결말이 다르다고 하니 다른 결말도 궁금해 지는군요.

근데 이 영화를 보고나서 가장 먼저 든 생각은.. 일기를 써봐야 겠다 라는겁니다.
어린시절엔 숙제로 내줘도 하기싫어서 몰아서 쓰던 기억이 있지만, 점점 나이가 들어가니 얼마전의 일들도 잘 기억을 못하게 되네요. 물론 블로그도 기록의 하나겠지만, 블로그는 아무래도 일기형식으로 쓰기엔 뭐하고, 남한테 공개하기도 힘드니까요.

일기쓰기 숙제는 선생님들이 꼭 그날 한 일들만 주욱적기보다는.. 느낀점같은것을 쓰라고 강요를 해서 짜증이 많이 났었는데, 차라리 그냥 일과를 주욱 적는것만으로도 훌륭한 기록이 될거 같습니다. 뭐 가끔 느낀점과 앞으로의 각오까지 적으면 더욱 좋겠죠. 🙂

그래서 저도 한구석에 슬슬 적어보려고 합니다. 얼마나 쓸지는 모르지만..

구글 친화적인 검색어 하이라이트 구현

구글검색결과 Highlighting

류광님의 글 “구글 친화적인 검색어 하이라이트 구현 아이디어”를 보고 제 홈에 적용해 봤습니다.

간단히 말하면.. Google, Daum, Naver, Empas, Yahoo, BlogKorea등의 검색엔진을 통해서 들어오시는 분들의 Referer 주소를 조사하여,
검색엔진에 입력했던 해당 단어를 제 홈에서도 하이라이팅(Highlighting) 해주는 기능입니다.

일례로 구글에서 “Firefox Extension” 을 검색해보면 가장 처음에 제 글이 보이는데요.
( 구글이 아마도 절 좋아하나 봅니다. 이런 주제어인데 1등이로군요 ^_^; )
거기서 제 페이지를 클릭해서 함 들어가 보시면, 구글에서 검색했던 단어인 Firefox 와 Extension 이란 글자들이
제 홈에도 서로 다른 색깔로 표시되는것을 보실수 있습니다. (위에 화면이 그 결과입니다.)

검색엔진을 통해 들어오셨을경우, 해당 글자때문에 오신것일테니.. 찾아서 보여주는건 하나의 서비스 일수 있겠죠. 🙂

혹시 필요하신분들을 위해 소스를 공개합니다. 소스코드는 간단하니까, 쉽게 적용하실수 있을겁니다.
전 태그안에 글자들은 치환안되게 막느라.. 무지 고생했습니다. T_T (사실은 검색하느라;;)
역시나 PHP 막코딩이니까, 틀린부분 있으면 조언부탁드리겠습니다.

[#!_소스및 적용방법 보기.. ▽|그만 볼래요.. △_!#]


<?

function get_search_text($referer_url)

{    

 
$engines = array (    // 검색엔진의 정보

  
array("google","q",0), // site주소 , 검색문자열스트링 , 인코딩(0=UTF-8,1=urlencode)

  
array("naver","query",1),  

  array(
"empas","q",1),

  array(
"yahoo","p",1),

  array(
"daum","q",1),

  array(
"blogkorea","st",1// 현재 AllBlog는 Referer에 검색정보가 제대로 안넘어와서 제외

 
);

  

  
$output = array();

 
$url_s = parse_url($referer_url); 

 
parse_str($url_s[query], $output);

 

 for (
$i = 0;$i < count($engines);$i++) {

   if(
eregi($engines[$i][0],$url_s[host])) {

     switch (
$engines[$i][2])

     {

       case
0: // UTF-8

         
$tt = mb_convert_encoding($output[$engines[$i][1]], "EUC-KR", "UTF-8");        

         break;

       case
1: // url_decode

         
$tt = rawurldecode($output[$engines[$i][1]]);        

         break;

       default:

         
$tt = mb_convert_encoding($output[$engines[$i][1]], "EUC-KR", "UTF-8");        

         break;

     }         

     

     return
explode(" ",$tt);     

   }     

 } 

 return
0;  

}

function highlight_search_result($memo,$query)

{

  
// 글자들의 색상

  
$colors = array (

  
"#bbbbff","#ffffaa","#bbffff","#ffc000","#ff8080","#30c0ff","#00ffff",

  
"#ff00ff","#f0c0ff","#c0c0c0","#ff8000","#ffc0c0","#ff0000","#008080");

  

  
$cnt_query = count($query) < 13 ? count($query) : 12;

      

  for (
$i = 0;$i < $cnt_query;$i++)

   
$memo = preg_replace(

     
"'(?!<.*?)$query[$i](?![^<>]*?>)'si",

     
"<b style="color:black;background-color:$colors[$i]">$query[$i]</b>", $memo);

   
// 태그안에 있는 문자들은 치환안되게 한다.

  
return $memo;

?>

위 소스를 글출력 부분에 넣고 , 아래와 같이 글전체 변수에 대해 실행해주시면 됩니다.


<?

$referer_query = get_search_text($HTTP_SERVER_VARS[HTTP_REFERER]);

if (is_array($referer_query)) {     

  
$memo = highlight_search_result($memo,$referer_query); // $memo 는 출력할 글 전체 내용

}

?>

[#!_END_!#]

* 이글은 http://occam.n4gate.com/zboard/view.php?id=column&no=55 에 트랙백되었습니다.