2007년 3월 16일 금요일

php에서 excel, csv, txt파일 읽어 들여 작업하기

php에서 file reading할때

global $admin_file;
if ($admin_file)
       {
           $file_params = pathinfo($_FILES['admin_file']['name']);
           $file_ext = strtoupper($file_params["extension"]);
           if ($file_ext != "XLS" && $file_ext != "CSV" && $file_ext != "TXT")
             fatal("잘못된 파일포맷입니다. 지원가능한 파일포맷은 (.xls | .csv | .txt)입니다.");
       }


#============================================
       #
       # data insert
       #
       switch ($file_ext)
       {
           case "XLS" :
               $data = new Spreadsheet_Excel_Reader();
               $data->setOutputEncoding('CP949');
               $data->read($admin_file);
               $num_rows = $data->sheets[0]['numRows'];
               break;
           case "CSV" :
               $data = file($admin_file);
               $num_rows = count($data) + 1;
               $fp = fopen($admin_file, "r");
               break;
           case "TXT" :
               $data = file($admin_file);
               $num_rows = count($data);
               $fp = fopen($admin_file, "r");
               break;
       }


for ($i = 1; $i <= $num_rows; $i++)
       {
                switch( $file_ext )
               {
                       case "XLS" :
                               $x = 0;
                               $data_array = $data->sheets[0]['cells'][$i];
                               break;
                       case "CSV" :
                               $x = 1;
                               $data_array = fgetcsv($fp, 1000, ",");
                               break;
                       case "TXT" :
                               $x = 1;
                               $buffer = fgets($fp, 4096);
                               $data_array = explode("\t", $buffer);
                               break;
               }

               // 작업
               $this->save2( $data_array, $x );                
              flush();
     }

2007년 3월 10일 토요일

인간의 시간은 원형으로 돌지 않고 직선으로 나간다. - 참을 수 없는 존재의 가벼움

흠 토마스와 테레사가 키우는 개가 있다 그의 이름은 카네닌.
개는 아침마다 테레사를 따라 장에 가고, 입에 크로아상을 하나 물고는 너무나 행복해 한다.

매일 테레사를 따라 송아지를 돌보며 또 행복해 한다...

그의 시간은 원형이다, 매일 같은 일을 하지만 매일 행복하다. 하지만 사람의 시간은 원형으로 돌지 않는다. 사람은 매일 같은 일에 지겨워 하고 흥미를 읽고 불행해 한다. 인간의 시간은 직선이기 때문이다.

과연 인간은 만물의 영장 이어서 다른 작은 것에 만족할 줄 아는 모든 동물의 최 상위에서 가장 큰 행복을 누리며 살아가는 것일까?...

자신의 개를 아끼고 사랑하는 테레사는 이렇게 생각한다, 자신과 토마스의 관계보다 자신과 자신의 개인 카네닌의 관계가 더 나은 관계가 아닌가? 하고...

2007년 3월 7일 수요일

php에서 A to Z까지 표시하기

<?
               $j = 1;
               for ( $i=ord('A'); $i <= ord('Z'); $i++ )
               {
               ?>
               <tr>
                 <td width=10 align=center><?= $j ?></td>
                 <td width=10><?= chr($i) ?></td>
                 <td width=30><input type=text name=macro<?= chr($i)?> class=input></td>
                 <td width=30>A</td>
               </tr>
               <?
                   $j++;
               } ?>

2007년 3월 6일 화요일

perl HTTP::Request 샘플 ebay.api 예제

# $Revision: 1.1.1.3 $
#
# $Date: 2003/06/25 17:40:00 $
use strict;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Headers;

my $objUserAgent = LWP::UserAgent->new;

my $request = "<?xml version='1.0' encoding='utf-8' ?>
   <request>
   <RequestToken>ABC...123</RequestToken>
   <ErrorLevel>1</ErrorLevel>
   <DetailLevel>0</DetailLevel>
   <Verb>GeteBayOfficialTime</Verb>
   </request>";

my $objHeader = HTTP::Headers->new;

$objHeader->push_header('X-EBAY-API-COMPATIBILITY-LEVEL' => '311');
$objHeader->push_header(
  'X-EBAY-API-SESSION-CERTIFICATE' => 'rbrown;rbrownapp01;12321AB121A2A1B');
$objHeader->push_header('X-EBAY-API-DEV-NAME' => 'rbrown');
$objHeader->push_header('X-EBAY-API-APP-NAME' => 'rbrownapp01');
$objHeader->push_header('X-EBAY-API-CERT-NAME' => '12321AB121A2A1B');
$objHeader->push_header('X-EBAY-API-CALL-NAME' => 'GeteBayOfficialTime');
$objHeader->push_header('X-EBAY-API-SITEID' => '0');
$objHeader->push_header('X-EBAY-API-DETAIL-LEVEL' => '0');
$objHeader->push_header('Content-Type' => 'text/xml');
$objHeader->push_header('Content-Length' => length($request));


my $objRequest = HTTP::Request->new("POST", 'https://api.sandbox.ebay.com/ws/api.dll',
    $objHeader, $request);
  # for https you will need an ssl enabling package
  # the following line from the PPM directory will install
  # one such PPM package  based on OpenSSL for the ActiveState 5.6 Perl build
  # PPM> install http://www.activestate.com/PPMPackages/5.6plus/Crypt-SSLeay.ppd

my $objResponse = $objUserAgent->request($objRequest);

if (!$objResponse->is_error)
   {
     # your error handling code here
   }
   else
   {
     # success, your processing code here
   }

실리콘 밸리는 제2의 르네상스...

1년새 일자리 3만개가 늘었고 클린테크, 바이오 분야의 창업이 최고 인기..

난 무엇을 해야 할까?
화학회사가 바이오 회사로 거듭날까?