반응형

T.T

어제 삽질을 어찌나 했던지

앞으로는 register_globals 옵션을 Off로 두고 개발을 해야겠습니다. ^^;;

최신 버전으로 회사 서버를 갈아 엎으려고

삽질 중이었는데

현재 최신 버젼인 5.3.17을 설치 했더니

php.ini를 넣고 나서 오류가 계속 발생하는 겁니다. T.T

그래서 봤더니

5.3.0 부터 register_globals라는 옵션을 지원하지 않는다네요 T.T

다른 분들두 조심하시고요

그래서 전 서버에 5.2.17 버젼을 설치 했습니다.

그라고 모든 것을 해결 ^^;;

반응형
반응형
libmysqlclient.so.16: cannot open shared object file: No such file or directory

PHP를 설치하다가 다른 오류는 많이 만났지만, 위 오류는 오늘 처음 만났다. ^^;;

몇가지 방법을 인터넷에서 찾아봤다.

/etc/ld.so.conf 파일에

/usr/local/mysql/lib 

를 넣고

ldconfig를 실행해 주고

make를 다시 실행하면 컴파일이 가능한 것 같다. ^^;;


반응형
반응형

뭔가를 찾고 변경하기 위해서 PHP에서는 정규식을 많이 사용합니다.

모두들 잘 아는 이야기지만, 서럽게도 이놈의 언어들이 대부분 외국에서 개발 되다 보니 영어를 이용한 정규식은 잘 지원 합니다만 한글을 이용한 정규식은 아래와 같이 사용할 수 있습니다.

옛날 블로그에 적어 둔글

어제 이거 찾는라 열심히 해맸습니다.

그래서 적어 둡니다. ^^;;

([0-9a-zA-Z \xA1-\xFE\.]+)

숫자 영어(소문자/대문자) 공백문자 . 등을 찾아 낼 수 있습니다.

다른건 원래 알고 있었던거고 ^^;;

\xA1-\xFE는 제가 항상 다니는 PHPSCHOOL의 질답란에서 확인 할 수 있었습니다. ^^;;

반응형
반응형
지난 번에 제가 내 드린 예제 괜찮게 작동하던가요?? 괜챃은 아이디어인지 모르겠습니다. 그 부분은 회원 인증의 기본적인 알고리즘입니다. 그럼 여기서 반복문에 대한 이야기를 약간 하기전에 회원 인증에 관한 부분을 이야기하고 넘어 가겠습니다.
---춘길군의 설명---
잠깐
쿠키(cookie)란? (과자가 아니죠)
서버가 필요할때 마다 꺼내보는 간단한 사용자 정보를 저장하는
방법이라고 할수 있습니다. 서버는 클라이언트의 요청이 있을때만
응답을 하고 연결을 끊습니다. 하지만 서비스를 위해 사용자 정보등이
일정기간 필요할 경우가 있을 것입니다.
회원제를 사용하는 사이트등에서 회원과 비회원간의 다른 메뉴와 기능등을
제공할 때가 그 예로 볼수 있고 그러한 것들을 위해 쿠키가 사용됩니다.
쿠키는 클라이언트의 브라우저 메모리나
하드 디스크에 저장됩니다.
쿠키의 크기는 최대 4k 바이트이고 하나의 서버나 도메인당 최대20개까지
저장할 수 있다고 합니다.
윈도우에선 c:\windows\cookies 라는 폴더에 저장되고 있습니다.


---


춘길이가 쿠키에 대한 설명은 너무 잘해 주어서 저는 세션에 관한 설명을 해 드리겠습니다. 그리고, setcookie() 함수와 session_*() 다음 기회에 여러분들을 배우시게 될겁니다.

세션은 특정 사용자가 홈페이지에 접속한 후 연결이 끊어질 때까지 지속적으로 사용자를 인식할 수 있도록 추적하는 것입니다. 또한 쿠키와 같은 성격과 기능을 가지는데 쿠키와 구별되는 중요한 차이점은 쿠키가 사용자의 컴퓨터에 저장된다면 세션은 서버쪽에 세션 데이터를 둔다는 점입니다. 이는 보안적인 측면에서 상당한 안정성을 높일 수 있습니다.  

-어쩐지 말을 억수로 잘한다고 했죠 ㅋ ㅋ ㅋ 인용했습니다. 닷컴 PHP 마스터 (이철혁 저) 가남사


그리고 HTTP 인증은 여러분들이 보실 수 있는 것 중에서 인터넷 익스플로어에 바로 사용되는 것입니다. 아파치의 .htaccess 파일과 .htpasswd 파일을 이용합니다.

그럼 여기서 셋길은 넘어 가구요. 반복문으로 넘어 가겠습니다.

우리가 오늘 배울 반복문은 while()과 for() 문을 배우게 됩니다.

우선 while() 문에 대해서 공부하겠습니다.

while은

[
do {

    실행 문 ;

}
] while(조건) {

    실행 문 ;

}

위와 같이 사용 됩니다. 조건 문이 참이면 계속 실행문을 실행 합니다.

이렇게 되겠지요
<?

$a=100;


while($a) {

 echo $a."<br>";

 $a=$a-1;

}

?>

앞에 [ do {   } ] 라고 되어 있는 부분은 사용해도 되고 있어도 된다는 뜻입니다.

do를 사용하는 경우는 조건이 거짓이면 한번도 실행문이 실행 되지 않기 때문에 사용됩니다.

그러니깐 다음과 같습니다.
<?
$a=0;

do {

   echo $a."<br>";

}while ($a) {

  echo $a."<br>";

}

컴퓨터는 0을 거짓으로 인식합니다. 1이상이어야 참으로 인식함으로 0은 거짓이어서 $a를 출력하지 않는데

저렇게 하면 0을 출력할 수 있습니다. ^^;;

while()은 이정도 하구요 앞으로 사용하면서 저와 함께 아주 많이 사용하게 될겁니다.

이제 for에 관해서 이야기 하겠습니다.

for(식1;식2;식3) {

   실행문;

}

for 는

식1 : for 루프가 처음 실행될 때 처음 한 번 실행될 명령
식2 : for 조건(while 문처럼 조건)이 생략되면 무한 LOOP입니다.
식3 : for 루프가 반복될 때마다 실행되는 구문입니다.

자 그럼 실제로 사용해 보겠습니다.

저부분은 많이 보셨을 겁니다.

for($i=1; $i <101; $i++) {

 echo $i."<br";

}

이렇게 사용됩니다.

조건문과 for문을 배우셨습니다.

위의 문제를 이용해서 구구단을 짜 보십시오.

숙제는 어디로 받지용??

음 어케 받을까 고민되넹

숙제 해주세요 ㅋ ㅋ ㅋ

구구단을 출력해 보십시오..

그럼이만

오늘은 강좌를 여기까지 하겠습니다.
반응형
반응형
<?php

/***************************************/
/* 파일명 : class.Smtp.php
/* 제작일 : 2002-08-30
/* 제작자 : 하근호(hopegiver@korea.com)
/***************************************/

class Smtp
{

   var
$host
;
   var
$fp
;
   var
$self
;
   var
$lastmsg
;
   var
$parts
;
   var
$error
;
   var
$debug
;
   var
$charset
;
   var
$ctype
;


   function
Smtp($host="localhost"
) {
       if(
$host == "self") $this->self = true
;
       else
$this->host = $host
;
       
$this->parts
= array();
       
$this->error
= array();
       $
$this->debug = 0
;
       
$this->charset = "euc-kr"
;
       
$this->ctype = "text/html"
;
   }

   
// 디버그 모드 : 1
   
function debug($n=1
) {
       
$this->debug = $n
;
   }

   
// smtp 통신을 한다.
   
function dialogue($code, $cmd
) {

       
fputs($this->fp, $cmd."\r\n"
);
       
$line = fgets($this->fp, 1024
);
       
ereg("^([0-9]+).(.*)$", $line, &$data
);
       
$this->lastmsg = $data[0
];

       if(
$this->debug
) {
           echo
htmlspecialchars($cmd)."<br>".$this->lastmsg."<br>"
;
           
flush
();
       }

       if(
$data[1] != $code) return false
;
       return
true
;

   }

   
//  smptp 서버에 접속을 한다.
   
function smtp_connect($host
) {

       if(
$this->debug
) {
           echo
"SMTP($host) Connecting...<br>"
;
           
flush
();
       }

       if(!
$host) $host = $this->host
;
       if(!
$this->fp = fsockopen($host, 25, $errno, $errstr, 10
)) {
           
$this->lastmsg = "SMTP($host) 서버접속에 실패했습니다.[$errno:$errstr]"
;
           return
false
;
       }

       
$line = fgets($this->fp, 1024
);
       
ereg("^([0-9]+).(.*)$", $line, &$data
);
       
$this->lastmsg = $data[0
];
       if(
$data[1] != "220") return false
;

       if(
$this->debug
) {
           echo
$this->lastmsg."<br>"
;
           
flush
();
       }

       
$this->dialogue(250, "HELO phpmail"
);
       return
true
;

   }

   
// stmp 서버와의 접속을 끊는다.
   
function smtp_close
() {

       
$this->dialogue(221, "QUIT"
);
       
fclose($this->fp
);
       return
true
;

   }

   
// 메시지를 보낸다.
   
function smtp_send($email, $from, $data
) {

       if(!
$mail_from = $this->get_email($from)) return false
;
       if(!
$rcpt_to = $this->get_email($email)) return false
;

       if(!
$this->dialogue(250, "MAIL FROM:$mail_from"
))
           
$this->error[] = $email.":MAIL FROM 실패($this->lastmsg)"
;
       if(!
$this->dialogue(250, "RCPT TO:$rcpt_to"
))
           
$this->error[] = $email.":RCPT TO 실패($this->lastmsg)"
;
       
$this->dialogue(354, "DATA"
);

       
$mime = "Message-ID: <".$this->get_message_id().">\r\n"
;
       
$mime .= "From: $from\r\n"
;
       
$mime .= "To: $email\r\n"
;

       
fputs($this->fp, $mime
);
       
fputs($this->fp, $data
);
       
$this->dialogue(250, "."
);

   }

   
// Message ID 를 얻는다.
function get_message_id
() {
   
$id = date("YmdHis",time
());
   
mt_srand((float) microtime() * 1000000
);
   
$randval = mt_rand
();
   
$id .= $randval."@phpmail"
;
   return
$id
;
}

   
// Boundary 값을 얻는다.
function get_boundary
() {
   
$uniqchr = uniqid(time
());
   
$one = strtoupper($uniqchr[0
]);
   
$two = strtoupper(substr($uniqchr,0,8
));
   
$three = strtoupper(substr(strrev($uniqchr),0,8
));
   return
"----=_NextPart_000_000${one}_${two}.${three}"
;
}

   
// 첨부파일이 있을 경우 이 함수를 이용해 파일을 첨부한다.
   
function attach($path, $name="", $ctype="application/octet-stream"
) {
       if(
file_exists($path
)) {
           
$fp = fopen($path, "r"
);
           
$message = fread($fp, filesize($path
));
           
fclose($fp
);
           
$this->parts[] = array ("ctype" => $ctype, "message" => $message, "name" => $name
);
       } else return
false
;
   }

   
// Multipart 메시지를 생성시킨다.
   
function build_message($part
) {

       
$msg .= "Content-Type: ".$part['ctype'
];
       if(
$part['name']) $msg .= "; name=\"".$part['name']."\""
;
       
$msg .= "\r\nContent-Transfer-Encoding: base64\r\n"
;
       
$msg .= "Content-Disposition: attachment; filename=\"".$part['name']."\"\r\n\r\n"
;
       
$msg .= chunk_split(base64_encode($part['message'
]));
       return
$msg
;

   }

   
// SMTP에 보낼 DATA를 생성시킨다.
   
function build_data($subject, $body
) {

       
$boundary = $this->get_boundary
();

       
$mime .= "Subject: $subject\r\n"
;
       
$mime .= "Date: ".date ("D, j M Y H:i:s T",time())."\r\n"
;
       
$mime .= "MIME-Version: 1.0\r\n"
;
       
$mime .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n\r\n"
.
               
"This is a multi-part message in MIME format.\r\n\r\n"
;
   
$mime .= "--".$boundary."\r\n"
.
           
"Content-Type: ".$this->ctype."; charset=\"".$this->charset."\"\r\n"
.
           
"Content-Transfer-Encoding: base64\r\n\r\n"
.
           
chunk_split(base64_encode($body
)).
           
"\r\n\r\n--".$boundary
;

       
$max = count($this->parts
);
       for(
$i=0; $i<$max; $i
++) {
           
$mime .= "\r\n".$this->build_message($this->parts[$i])."\r\n\r\n--".$boundary
;
       }
       
$mime .= "--\r\n"
;

       return
$mime
;

   }

   
// MX 값을 찾는다.
   
function get_mx_server($email
) {
       
       if(!
ereg("([\._0-9a-zA-Z-]+)@([0-9a-zA-Z-]+\.[a-zA-Z\.]+)", $email, $reg)) return false
;
       
getmxrr($reg[2], $host
);
       if(!
$host) $host[0] = $reg[2
];
       return
$host
;

   }

   
// 이메일의 형식이 맞는지 체크한다.
   
function get_email($email
) {
       if(!
ereg("([\._0-9a-zA-Z-]+)@([0-9a-zA-Z-]+\.[a-zA-Z\.]+)", $email, $reg)) return false
;
       return
"<".$reg[0].">"
;
   }


   
// 메일을 전송한다.
   
function send($to, $from, $subject, $body
) {
       
       if(!
is_array($to)) $to = split("[,;]",$to
);
       if(
$this->self
) {

           
$data = $this->build_data($subject, $body
);
           foreach(
$to as $email
) {
               if(
$host = $this->get_mx_server($email
)) {
                   
$flag = false; $i = 0
;
                   while(
$flag == false
) {
                       if(
$host[$i
]) {
                           
$flag = $this->smtp_connect($host[$i
]);
                           
$i
++;
                       } else break;
                   }
                   if(
$flag
) {
                       
$this->smtp_send($email, $from, $data
);
                       
$this->smtp_close
();
                   } else {
                       
$this->error[] = $email.":SMTP 접속실패"
;
                   }
               } else {
                   
$this->error[] = $email.":형식이 잘못됨"
;
               }
           }

       } else {

           if(!
$this->smtp_connect($this->host
)) {
               
$this->error[] = "$this->host SMTP 접속실패"
;
               return
false
;
           }
           
$data = $this->build_data($subject, $body
);
           foreach(
$to as $email) $this->smtp_send($email, $from, $data
);
           
$this->smtp_close
();

       }

   }

}

/*
$mail = new Smtp("self");
$mail->debug();
$mail->send("photon0@hanmail.net", "hopegiver@whois.co.kr", "이 메일은 정상입니다.", "정상적인 메일이니 삭제하지 마십시오.");
*/

?>
반응형
반응형
회사일이 정신 없이 바빠서 강좌를 진행을 못하고 있습니다. ^^;; 겨우 짬을 내서 화이팅 화이팅 서두는 이제 그만 (텔레또비 버전)

PHP에서 제가(다른 분들은 잘 모르겠기에 ^^) 프로그래밍 할때 저는 날자로 거의 무조건 UNIX Time을 이용합니다.

그래서 특정일의 날자를 Unix Time으로 구할 필요성을 느끼게 됬고 그것을 구하는 함수를 구현 하여 사용하고 있습니다.

오늘의 Unix 구하기

function kjh0523_today() {
$year=date("Y");
$month=date("m");
$day=date("d");
return mktime(00,00,00,$month,$day,$year);
}

함수를 활용하는 방법은

밑에 말씀 드린 파일에 넣어 놓고 ^^;;

$today=kjh0523_today();

이렇게 해서 활용합니다.

그리고 특정일을 구하는 방법.

function kjh0523_wanted_day($year, $month, $day) {

return mktime(00,00,00,$month,$day,$year);

}

활용은

$wanted_day=kjh0523_wanted_day(2000, 09,24);

이렇게 하시면 됩니다.

활용 잘 하시기를
반응형

'PHP' 카테고리의 다른 글

PHP 반복문  (0) 2010.06.08
[펌] PHP - SMTP Class - 허근호님  (0) 2010.06.07
개인 라이버러리 구축 2 - 라이버러리의 활용.  (0) 2010.06.05
PHP Edit로 Acrosoft의 AcroEdit를 활용해 보자  (0) 2010.06.04
PHP FTP Connect  (0) 2010.06.03
반응형

지난 번에 이 부분을 안하고 강좌를 시작한 것 같아서요 두번째 강좌로 이글을 올립니다. ^^;;

라이버러리를 활용하는 방법은 두가지가 될 수 있습니다.

1. 계정 사용자의 측면

2. 서버 관리자로서의 측면

우선 계정 사용자 측면에서 보면 불행이도 Apache 설정 문서나 php.ini 파일을 전혀 활용할 수가 없습니다. 그래서 조금은 노가다 적인 성격을 띄어야 합니다.

여러분들이 가지고 있는 라이버러리 즉 기법 중에 보통 db 접속 문서를 인클루드 하시는 걸로 알고 있습니다. ^^;;

처음 사용하시는 분이야

$connect=mysql_connect("localhost", "xxxxxxx", "xxxxxxx");
mysql_select_db("selected_db_name, $connect);

저 것을 모든 페 이지에 다 넣어 놓으시겠습니다만

조금 익수해 지신 사용자라면 저것을

db.inc / connect.inc / conn.php 등으로 해서 인클루드해서 쓰실 겁니다.

바로

include('/home/www/db.inc');

이런식으로 해서 말입니다.

저게 일종의 라이버러리 구실을 하는 겁니다.

저와 마찬가지로

여러분들의 개인 라이버러리를 작성해서.

include('/home/www/lib/lib.inc');

이줄을 저줄 밑 또는 윗줄에 넣어 두시면 간편하게 라이버러리를

사용하실 수 있습니다.

불행이도 저것은 모든 페이지 즉 개인 라이버러리 중의 함수가 쓰인 모든 곳에 다 넣어야 한다는 것입니다.

잘 활용하시구요

다음으로 서버로서의 측면을 안내합니다.

서버에서는 php.ini 파일을 잘 활용하시면 됩니다.
ini 파일에서 아래 부분을 잘활용하시면 됩니다.

auto_prepend_file = /home/www/lib/prepend.inc
auto_append_file =

이렇게 해두고 저 prepend.inc 파일에서 필요한 파일들을 인크루드 해 두면 ^^;; 그게 모드 라이버러리도 사이트 전체에서 작동하게 되는 것입니다.

늘 포함 하시는 것이 아니고 가끔 필요하신 경우는 인크루드 하시는데 항상 모든 디렉토리를 넣어햐는 불편함을 없애 주는 옵션이 있습니다.

아래와 같은 옵션을 넣으면 포함된 특정 디렉토리에서 파일을 찾게 됩니다.

특정 디렉토리를 지정하면 그 디렉토리로 찾아가지만 그렇지 않으면 아래의 패쓰들에서 필요한 파일을 찾게 되는 것입니다.

include_path = "/home/www/lib:.:/home/www/club/lib"

이것두 많이 활용하시기 바랍니다. ^^;;

그럼이만.
반응형
반응형

메모장은 여러가지 면에서 프로그램언어의 편집기로 활용하기에 부족합니다. 많습니다. 하지만, 메모장도 나름대로 좋은 프로그램이라고 생각합니다. 많은 분들이 사용하고 있는 것을 보면 말입니다.

저는 메모장이 부족한다는 생각을 가지는 사람입니다. 그래서 EditPlus를 사용하고 있습니다. 하지만 이 편집기는 사용이어서 좋은 프로그램이긴 하지만 여러분들에게 Acroedit를 소개합니다. 많은 활용 바랍니다.

우선 아크로 에디터는 http://www.acrosoft.pe.kr의 주인장인 김성동님께서 공개한 편집기 입니다. 여러분들을 아크로소 프트에서 프로그램을 다운로드 할 실 수 있습니다. 아크로 소프트의 다운로드 란에서 우선 아크로에디터를 다운 받으십시오.

그리고, 다운로드 한 곳으로 이동해서. 아크로 에디터를 실행합니다.

잘 보시고 원하시는 대로 설치를 하십시오. 저는 무조건 다음을 눌러서 설치 했습니다. 그러면 처음으로 아크로 에디터가 뜰 것입니다.

이제 부터 작업을 해 보도록 하겠습니다. 이제 아크로 에디터가 설치 되었습니다. 성동님의 사이트로 다시 가서

다음 파일을 다운로드 합니다.

PHP 문법 구문 강좌 파일 다운로드 하기

제가 링크는 해 두었습니다만 링크가 깨질 수도 있음으로 성동님의 사이트에서 사용자 자료실 메뉴를 사용하십시오. 검색에 php라고 치면 원하시는 자료를 얻으실 수 있을 겁니다.

받았으면 받은 파일의 압축을 푸십시오. 압축을 푸실때 바로 C:\Program Files\AcroSoft\AcroEdit 폴더를 선택해서 이폴더에 들어 갈 수 있도록 풉니다.

그 다음에 아크로 에디터로 돌아와서. 도구/환경설정 메뉴를 선택합니다. 문법 강조 및 필터 탭을 선택합니다. 그리고, 추가 탭을 선택합니다. 추가 탭 옆에 보시면 편집 탭이 있습니다. 물론 그걸 선택하셔야겠죠 ^^;; 그럼 다음 그림이 나옵니다.


위 그림에서 문법 파일 옆에 폴더 아이콘을 클릭하면 문법파일을 선택할 수 있는 창이 나옵니다. 거기서 아까 우리가 받아서 풀어 놓은 php.stx 파일을 선택합니다. 그리고 확인을 누르십시오. 그리고 설정 탭으로 돌아가면 Visual Basic 파일 밑에 비어 있습니다 그곳을 한번 클릭한구 PHP 파일이라고 적어 줍니다. 그리고 확인을 누릅니다.

확인을 누르신 후에 파일을 하나 작성해 보도록 하십시오. 파일/새파일/PHP파일을 선택하시면 제목없음1.phtm 이라는 파일이 새로 생깁니다. 그곳에 다음 그림과 같이 쳐보십시오 다음 그림과 같이 보이면 구분 강좌 파일 설정에 성공 하신 겁니다.


앞으로 좋은 PHPing 되시기 바랍니다.

그럼이만.

그리고 php의 확장자는 .php 또는 .html을 쓰시는 것이 좋습니다.

반응형
반응형
PHP로 FTP에 접속 하는 프로그램 입니다.

접속만 됩니다. ^^;;
hosip, userid, passwd 는 변경 하셔야 합니다.

<?
  $conn=ftp_connect("hostip");
  if($conn) echo "FTP에 접속했습니다.";
  else echo "FTP 접속에 실패 했습니다.";
 
  $login_id=ftp_login($conn, "userid", "passwd");
 
  if($login_id) echo "FTP에 로그인 했습니다.";
  else echo "FTP 로그인에 실패했습니다.";
 
  ftp_close($conn);
?>

접속 했다가 바로 끊어 버립니다. ^^;;

PHP로 배치 프로그램 작성할일이 있어서

좀더 발전 되면

또 이어서 올리겠습니다.

반응형
반응형

http://www.apmsetup.com


위의 사이트에 접속하셔서 우선 APMSETUP5를 다운로드 합니다.

제가 설명하는 사항은 매우 간단합니다. ^^;;

그래서 상세한 설명은 위의 사이트를 참조 하십시오

여기서 말하는 APM SETUP은

제가 열심히 여러분들께 설명을 해 드려야할 설치 부분을 줄여 주는 프로그램입니다.

설치를 자동화 시켜 줍니다.

그냥 저 파일을 받아서 일반 프로그램을 설치 하듯이 설치 하시면 끝납니다. ^^;;

설치 메뉴얼은

http://www.apmsetup.com/APM_Setup5/

위의 사이트에서 보실 수 있습니다.

그러니깐 지금까지 글을 정리하면

1. Link2를 이용해서 파일을 다운로드 받는다.
2. http://www.apmsetup.com/APM_Setup5/를 방문해서 설치 방법을 숙지한다.
3. 설치한다.

그리고, 설치가 끝나면 바탕 화면에 APM_setup5 모니터라는 아이콘이 생깁니다.

그걸 이용해서 프로그램을 실행 하실 수 있습니다.

http://localhost/

또는

http://127.0.0.1/

APM_Setup 정보 페이지로 이동합니다.
URL: http://127.0.0.1/apmsetup/

이메시지가 보이고

APM_Setup 페이지로 넘어 갔다면 설치를 잘 하신겁니다.

일단 지금은 여기까지 하고요 다음 강좌에서 그후의 일들을 설명하겠습니다.

그럼이만.

2009/01/31 09:07 2009/01/31 09:07

Posted by 가야태자

반응형
반응형

오늘 강의는 지겨울지도 모르겠다 왜냐면 이론이기 때문이다.

그래서 중간 중간에 간단한 프로그램 보기를 들겠다 어제 와 마찬가지로 메모장 등에 카피해서 잘 활용해 보기 바란다. ^^;;

그리고 어제 말한 메모장의 한계 때문에 Acrosoft의 Acroedit에 대한 강좌를 준비 했다. 다음강좌에서 보실 수 있다. 많은 활용 바란다.

PHP는 <? 로 시작해서 ?> 로 끝난다는 이야기를 했다.

그리고 PHP 뿐 아니라 여러 언어를 접해 보면

변수와 상수 그리고 연산자 라는 말을 듣게 된다.

변수는 변하는 숫자이다.

상수는 변하지 않는 숫자이다.

그리고 연산자는 + - * / 같은 것들을 말한다.

PHP의 연산자와 변수에 대해 자세한 내용을 여기서 다 나열하기란 힘들다 그래서 PHP 영문 메뉴의 링크를 제공한다.

LINK2를 이용하면 내일 강의의 예습도 할 수 있다. ^^;;


그전에 PHP의 변수와 상수는 $로 시작하며 첫글자는 한글,영어 알파벳, _가 올 수 있다.

다른 언어에 비해 PHP는 2바이트 변수를 제공한다.

즉 $abce 뿐 아니라 $가나다 도 변수가 될 수 있다는 말이다.

그러나 다음은 틀린 변수이다.

$1234

$ㄱ

$#

즉 첫글자는 영문또는 한글 또는 _만 올 수 있다. 물론 !@#$%^&*()등의 특수기호는 변수명으로 쓰일 수 없으며 첫글자를 제외하고는 숫자도 올 수 있다.

여기서 약간 다른 언어로 새어서 이야기 해 보자

자바도 한글 변수를 지원한다. $가나다
그리고, C는 한글 변수를 지원하지 않는다.
그냥 알고 있길 바라면서 작성한 것이다.

다시 PHP로 돌아가서

PHP의 변수는 다른언어와 달리 메모리 공간을 미리 할당할 필요 없이 언제든지 사용할 수 있다.

C의 경우에  메모리를 절약하기 위해서 최대한의 에러를 줄이기 위해서 다음과 같이 사용한다.

int a

a=1;

이런식으로 먼저 정의해 주고 변수를 사용해야 한다

하지만 PHP는 언제 어디서든

$a=1 하면 정수가 되며 심지어 $a="김종하" 하면 문자열이 된다. 똑같은 변수명인데도 다른 값으로 사용될 수 있다는 것이다. 하지만 C에서는 불가능한일이다.

간단히 변수가 활용되는 예를 체크해보자

#var.php

<?
    $a=1;
   echo "\$a=".$a."<br>";
    $a++;
   echo "\$a++=".$a."<br>";
?>

위의 문장을 편집기를 이용해서 편집하고, localhost에서 확인해 보기 바란다.

변수는 간단하게 넘어 가겠다.


그리고, 앞에 말한 연산자를 이야기 하겠다.

연산자는 변수와 변수 또는 상수 사이의 계산을 하는 도구이다.

이 도구들로 기본적으로 실제 연산에서 사용되는

+-*/ (사칙연산)
== , && (and), ||(or), !,!=,<, >, <=, >=
++, --, .,%,
등의 연산자를 가지며

특이한 것에 대한 설명을 하겠다

%, ++, --, .가 여러분들에게 필자는 생소할 것으로 생각된다.

그래서 이것들을 이야기하면

우선 %는 나머지 연산자라고 한다.

직접 실행해 보고 그 결과를 알 수 있도록 해보자

나머지.php

<?
    $a=10%4;
    echo "10을 4로 나눈 나머지는?".$a;
?>

그리고 ++와 --는 그 값에 1을 더한 것과 뺀것이다.

다음을 실행해보고 알아보자

<?
    $a=100;
    $ra=$a;
    $b=$a++;
    $a=100;
    $c=++$a;
    $a=100;
    $d=$a--;
    $a=100;
    $e=--$a;
    echo "\$a=".$ra."<br>\$a++=".$b."<br>++\$a=".$c."<br>\$a--=".$d."<Br>--\$a=".$e."<br>";
?>


그리고 끝으로 . 이다. .은 문자열 더하기 연산자라고 여기서는 부르겠다. 항상 그냥 말없이 쓰다보니 저게 정확한 이름을 까먹었다 ㅋ ㅋ ㅋ

.이 연산자로 사용되는 모습은 많은 분들이 앞에서 보았으리라 생각한다. 자 그래도 한번더 활용해 보자

<?
  $a=123;
  $b=567;

  $c=$a+$b;
  $d=$a.$b;

  echo "\$a + \$b=".$c."<br>";
  echo "\$a.\$b=".$d."<br>";
?>
한번 비교해 보기 바란다.

그리고, 프로그램을 짜다 보면 앞으로 이걸 왜 작성했는지 까먹을 것 같을때가 있다.

이때 주석처리를 해 두면 앞으로 좋은 결과를 얻을 수 있을 것이다.

PHP에서 사용할 수 있는 주석 처리 방법은 다음 세가지가 있다.

#
//
/*      */

이렇게 말이다.

그 예를 보도록 하기 전에 ^^ 주석이란 무엇인가를 알아 보겠다.

주석은 코드에 영향을 미치지 않으면서 코드를 예쁘게 해주는 기능과 코드를 해석하기 쉽게 해주는 일종의 설명부분이다.

그럼 그예를 보도록 하자

<?
  ##김종하의 첫번째 프로그램##
// 이것도 주석인데
/* 긴 주석의 경우에는 이렇게 합니다.

주석을 달아 보세

*/

?>

오늘은 여기 까지 하고 내일 부터는 실제로 여러분들이 프로그램을 짜볼 생각을 해야한다.

프로젝트 단위로 했으면 하는데... 생각나는 프로젝트가 있으면 말해 보기 바란다.

필자는 가장 간단한 방명록 시스템을 여러분들 스스로 작성할 수 있도록 해 줄 생각이다

다른 것을 생각하는 독자들을 이야기 해주기를 바란다.

그럼이만.

2009년 2월 2일 옛날 블로그에서 적었던 글입니다. ^^;;



반응형
반응형

잊어 버리지 않으려고 포스트를 작성합니다.

PHP의 fsocketopen 함수만 사용하면

DNS로 IPV6 쿼리를 호출 하는 문제가 있었습니다.

AAAA +

라는 이상한 로그가 남는겁니다. 그것도

두 줄 씩이요..

T.T

그래서 조사를 해보니 저 로그는 IPV6관련 쿼리라고 되어 있더라구요.

PHP IPV6를 끌 방법을 열심히 찾다가 보니깐

PHP 소스 폴더 아래에 main/php_config.h

파일에

HAVE_IPV6 옵션이 있더라구요

거기를 0 으로 셋팅을 했씁니다.

그런데도 효과가 없었습니다.

그래서 혹쉬나 하는 마음에 마지막으로

./configure --help | grep ipv6

라고 했더니

내가 원하는 것이 나오는 것입니다. T.T 감격 ^^;;

제가 원하는 옵션은 --disable-ipv6

였습니다.

리눅스나 유닉스에서는 ipv6를 지원하지만 PHP에서는 지원하지 못하도록 하는

옵션 ^^;;

그래서 저 옵션을 추가하고

웹 애플리케이션을 구동 했더니

다행이도...

IPV4 관련 쿼리만 DNS에 던지 더라구요

얼마나 기뻣던지

잊어 버리지 말자 ^^;;

--disable-ipv6

 

이 글은 1호점에서 이관해 왔습니다.

 


이 글은 스프링노트에서 작성되었습니다.

반응형
반응형
1호점에서 가져 왔습니다.

여러분들은 프로그램을 작성하시면서 많은 자바 스크립트를 활용할 겁니다. 그 자바 스크립트와 PHP를 섞어서 함수화 해놓고 그걸 가지고 잘 활용한다면 엄청 편해 질 것이라는 생각이 듭니다. ^^;; 그래서 오늘은 언제 또 업데이타 될지 모르겠지만 개인 라이버러리 구축의 제 일단계로 history 함수를 작성해 보겠습니다.

우선 함수를 작성하는 방법은 다음과 같습니다.

function function_name() {
문장
}

저위의 형식으로 함수를 작성합니다. function_name()가 함수명이 됩니다. 이 함수의 () 안에는 여러변수들이 나열 될 수 있습니다.

function go_back($msg, $num) {
echo ("
<script>
alert('$msg');
history.go($num);
</script>
");
exit;
}

함수는 위와 같이 작성합니다.

그리고 활용하는 것은요

저걸 파일에 저장해 놓고 include를 시켜두 되구요.

아예 페이지에다 저 코드를 뿌려 주셔두 됩니다.

그리고 함수를 호출하는 방법은

예를 들어서 '이름을 넣지 않으셨습니다.' 라는 메시지를 나타내고 한칸 뒤로 가시려면

이렇게 하시면 됩니다.

go_back("이름을 넣지 않으셨습니다.", -1);
반응형
반응형
1호점에서 가져왔습니다.

우선 APM 설치에 관한 이야기는 인터넷 상에 너무나 많이 나와 있음으로 여기서는 다루지 않음을 밝혀 둔다

우선 APM 즉 Apache PHP MySQL을 운영하고자하는 두대의 서버에 모두 설치한다.

DB 서버를 사용하고자 하는 곳을 정하고 DNS를 설정한다.

웹서비스를 하고자 하는 서버를

www.yourdomain.com 과 yourdomain.com

을 할당하고

DB 서버로 사용하고자하는 서버를

db.yourdomain.com 을 할당한다.

내가 APM을 두대다 설치하라고 한 이유는 간단하다.

우선 한대는 MySQL 서버를 운영할 필요가 없지만 MySQL의 라이버러리와 클라이언트가 필요하다

그리고, 한대는 Apache + PHP가 필요 없지만

요즘 내가 mysql 클라이언트로 MySQL을 운영할 자신이 없기 때문이다.

그래서 phpMyAdmin을 설치하기 위해서는 APM 환경이 돌아가야한다.

그래서 운영하고자 하는서버 두대 모두 APM을 설치하라고 한 것이다.

그럼 설치는 끝났다고 생각하겠다.

그리고, Apache(http) 데몬과 MySQL 데모인 각각의 서버에 제대로 떠 있다고 생각하겠다.

그럼 아까 말한대로 phpMyAdmin을 db.yourdomain.com 서버에

http://www.phpmyadmin.net/

를 방문해서 다운 최신 버전으로 받은 후 설치해라.

설치라고 해야 간단하다.

우선 압축 파일을 받아서

계정에 올리고 웹서비스를 할 수 있는 곳의 root로 옮기고

tar xzvfp phpMyAdmin.version.tar.gz

이렇게하면 풀리는 모습이 보이면서 압축이 풀릴 것이다.

그리고

mv phpMyAdmin.version phpMyAdmin

해서 디렉토리 명을 원하는대로 변경한다.

나는 프로젝트 자체를 존중하기 때문에 프로젝트 명을 디렉토리명으로 쓴다. 버전 까지 쓰고 싶지만 웹에서 접근할때 좀 힘들어서 ^^;;

cd phpMyAdmin

vi config.inc.php

최근 버전 부터 아래 옵션이 생겼다.

$cfgPmaAbsoluteUri = ' http://db.yourdomain.com/yourdir/phpMyAdmin/';

(yourdir)은 없다면 적지 않아도 된다.

그러니깐 이 옵션은 phpMyAdmin을 서비스할 완벽한 URL을 적어 두는 곳이다.

죽 내려보면

$cfgServers[$i]['host'] = 'localhost'; // MySQL hostname


$cfgServers[$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?

여기서 잠깐 auth_type은 원래 config라고 되어 있다 MySQL 자체의 인증을 사용하기 위해서 나는 http를 선택했다.


$cfgServers[$i]['user'] = 'youruser'; // MySQL user
$cfgServers[$i]['password'] = 'yourpass'; // MySQL password (only needed

위와 같은 옵션들이 존재할 것이다.

저것을 여러분들에게 맞게 변경해라.

그리고 저장하고 vi를 닫아라.

저장했으면 이제 웹브라우져에서

http://db.yourdomian.com/phpMyAdmin/

에 접근해 보자

그러면 ID와 PW를 묻는다.

이때 root 아이디와 PW를 넣고 접근한다.

지금 부터 우리는 계정을 생성할 것이기 때문이다.

phpMyAdmin에 접근 했으면

이제 mysql 데이타 베이스에 접근 해라.

그리고 user 테이블로 이동한다.

그리고 추가 버튼을 누른다.

Host 에 www.yourdomain.com 의 아이피를 적어라

IP주소는 nslookup www.yourdomain.com

이라고 하면 알 수 있다.

그리고 userid에 당신이 원하는 아이이들 적고

password에 함수를 선택한다 PASSWORD 함수를 선택하고 옆에 빈칸에 자신이 원하는 비밀번호를 적는다.

그리고, 보통은 아래의 모든 값을 N으로 하고 db를 설정하는 것이 좋다

하지만, 나는 원격 root 성격의 아이디를 만들겠다.

그래서 아래의 값들을 모두 Y를 선택하기를 원한다.

그럼 모두 선택했으면 실행 버튼을 눌러서

아이디를 생성한다.

이대로 두면 MySQL은 방금 생성한 아이디를 제대로 인식하지 못한다.

그래서 셀렉트 바에서 - 를 선택해라.

그리고, 옆 화면을 주시하면 MySQL 재시동 이라는 링크가 보일 것이다.

클릭해라.

그럼 이제 부터 www.yourdomain.com에서 db.yourdomain.com의 MySQL 데이타 베이스에 접근이 가능해 졌다.

그럼 이제 web 서버를 설정하러 가보자

웹서버에는 Apache만 구동한다. MySQL은 구동하지 않는다.

이유는 간단하다. 원격으로 DB 서버를 구성해 두었기 때문이다.

MySQL은 클라이언트로만 사용할 것이다.

그럼 아까 받아 둔 phpMyAdmin을 역시 www.yourdomain.com의 서비스 디렉토리에 설치한다.

압축을 풀고 디렉토리를 변경하는 과정 까지는 같고 콘피그 파일을 설정하는 방법이 조금 다르다.

다음과 같이 따라하면 된다.

vi config.inc.php

$cfgPmaAbsoluteUri = ' http://www.yourdomain.com/yourdir/phpMyAdmin/';

(yourdir)은 없다면 적지 않아도 된다.

그러니깐 이 옵션은 phpMyAdmin을 서비스할 완벽한 URL을 적어 두는 곳이다.

죽 내려보면

$cfgServers[$i]['host'] = 'db.yourdomain.com or dbs.erv.er'.sip'; // MySQL hostname

여기서 여러분은 눈치가 빠른 사용자라면 눈치 챌 것이다.

php 등에서 mysql 접속함수를 쓰면서 다음과 같이 해 줘야 된다는 것을

mysql_connect("db.yourdomain.com or db.yourdomain.com or dbs.erv.er'.sip", "yourid", "yourpw");

이렇게 말이다. 이것 외에는 다른 점이 없다.


$cfgServers[$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)?

여기서 잠깐 auth_type은 원래 config라고 되어 있다 MySQL 자체의 인증을 사용하기 위해서 나는 http를 선택했다.


$cfgServers[$i]['user'] = 'youruser'; // MySQL user
$cfgServers[$i]['password'] = 'yourpass'; // MySQL password (only needed

여기서 아까 우리가 생성한 원격서버의 root 계정의 정보를 적어라

당신이 만든 아이디와 패스워드를 말이다. db 서버의 root 계정이 아니고 새로 만든 아이디를 의미한다.

그리고 저장하고 vi를 닫아라.

저장했으면 이제 웹브라우져에서

http://www.yourdomian.com/phpMyAdmin/

저렇게 접근하고 아까 적은 아이디와 패스워드를 넣으면 db.yourdomain.com 에서 본 것과 동일한 환경이 나타날 것이다.

여기까지 끝냈으면 보안을 위해서 일단, db.yourdomain.com의 Apache 서버는 내려라 MySQL은 두고 말이다.

그리고 우리는 이제 www 도메인만 사용한다.

http://www.yourdomian.com/phpMyAdmin/

이곳에 접근해서 원격 슈퍼유져 아이디는 당신만이 기억하고 또는 당신 보스와 함께 하지만, 앞으로 접근할 다른 사람들의 아이디는 db와 성격에 맞게 잘 만들어서 써야한다.

이부분은 더이상 설명하지 않겠다.

이렇게 하면 원격으로 Web 서버와 DB서버를 분리해서 운영할 수 있다.

허접한 글이긴 하지만 여러분들께 많은 도움이 되었으면 하는 바램이다.
반응형
반응형
1호점에서 가져왔습니다.

odbc로 DB2 쿼리 하는 예제 입니다.

<?php
putenv("DB2INSTANCE=db2inst1");
putenv("INSTHOME=/home/db2inst1");
//check_checkedList();
$db2_host="db2host"; // DB2호스트명
$db2_user="db2user"; // DB2사용자명
$db2_pass="db2pass"; // DB2비밀번호
$db2_connect=odbc_connect($db2_host,$db2_user,$db2_pass);

   //$db_query="SELECT k.kwon_year, k.SET_POSITION, k.reg_id, k.status, k.set_position_type FROM mono.mmp1_".$kwon_tbl." k, mono.mlp1_subscript s WHERE k.reg_id=s.maccno AND k.control_id='$control_id'";
   $db_query="select * from dbname.tablename"; // 원하는 쿼리

   $result = odbc_do($db2_connect,$db_query);
   $num_rows= odbc_num_rows ($result);

   $num=0;

   while (odbc_fetch_row($result))
   {
    $num++;
    echo odbc_result ($result, 1);
   }
?>


반응형
반응형

$error_code=0;
//트랜젝션을 시작 합니다.
ifx_query("BEGIN WORK", $connect);

for($i=0; $i<100000; $i++) {
$mail_query = "INSERT " .
                "      INTO  test " .
                "      VALUES ('test".$i."') ";
echo "$i : ".$mail_query."<br>";


   $res_id=ifx_query($mail_query, $connect);
   if(!$res_id) {
        //에러가 발생하면 error_code에 1을 셋팅 합니다.
        $error_code=1;
  }
}

if($error_code==0) { 
   // 에러가 없으면 커밋 합니다.
   ifx_query("COMMIT WORK", $connect);
}else {
   // 에러가 있으면 롤백 합니다.
   ifx_query("COMMIT WORK", $connect);

}




오라클 같은 경우에는 위와 같이 잘 사용하는데 인포믹스는 저렇게 사용을 안해서 계속 잊어버리기 때문에 적어 둡니다. ^^;;




 

반응형
반응형
일반적으로 다른 분들도 비슷하겠지만

저는 작업을 습관적으로 이렇게 합니다.

1. eclipse 또는 editplus로 편집한다

예전에는 editplus가 제 강력한 무기였고

지금은 주로 eclipse가 제 강력한 무기를 대체하고 있습니다.

2. 편집한 파일을 WinSCP를 이용해서 FTP로 전송합니다.

3. 브라우져를 하나 열고

올린 파일을 확인 합니다.

그런데 방법을 바꿔 보기로 했습니다. ^^;;

eclipse로 편집하고 eclipse에서 바로 올리는 방법을 강구해 보기로요

오늘 네박사에게 물어보다가 발견한 두가지 글입니다.

제가 선택한 글은 esftp라는 eclipse 플러그인을 이용한 방법입니다.

차니 사랑님의 Eclipse에서 FTP 사용하기(esftp 플러그인) 

입니다.

위 글은 esftp라는 플러그인을 이용해서 해당 파일을 바로 원격지로 전송하는 방법입니다.

두번째는 바게님의 글입니다.

[바게] eclipse PHP + FTP 개발 환경 만들기 - 2008.01

위 글은 원격지에 있는 파일을 바로 편집 할 수 있도록 해줍니다.

제가 전자를 선택한 이유는 프로젝트에서 SVN 서버를 이용하기 때문입니다.  ^^;;

원격지에다가 파일을 두면 SVN과 동기화 할 방법이 없어서

이렇게 합니다.

하지만, SVN을 사용하지 않으신다면 저 방법도 괜찮을 것으로 생각 됩니다.

반응형
반응형
반응형
반응형
우리집에는 방하나의 벽면에 가득히 IT  서적이 놓여 있습니다.

조금씩 제 글들에서 이야기를 했지만,

저는 SI 업체에서 PHP를 주 업무로 밥을 벌어 먹고는 사는 사람입니다.

그런데, 옛날에는 몇권의 PHP 책이 서가에 꽂혀 있었습니다.

그런데 그책 2권이 없어지고 난 뒤부터 

누군가를 빌려 드렸는데 돌려 봤지 못했습니다. T.T

제 서가에는 PHP 책이 늘어 나지를 않습니다. ^^;;

그런데, JAVA, C/C++, .net 책들은 쌓여 가고 있습니다.

그리고, 방법론에 관한 책

지속적인 통합과 관련된 책

GUN로 하는 프로그래밍 책들은 쌓여 가고 있습니다.

그리고 보니 제 블로그도 마찬가지 입니다.

제 블로그의 분류에 PHP와 관련된 카테고리는 없습니다.

단, 1호점에는 PHP와 관련된 카테고리도 있고 글들도 있습니다.

2호점과 talkit에서는 저 글들이 없네용 ^^;;

요즘 java, .net, c/c++ 등의 언어를 닥치는 대로 하고 있고,

회사에서는 지속적인 통합에 관심이 있어서

밑에 직원들을 괴롭히고 있구요.

아마도 java .net c/c++은 가끔 합니다 제가 하고 싶을때

참 요즘 java는 주 업무가 될 분위기를 띠고 있지만용 ^^;;

정신 없이 글을 썼네용..

참고로 제가 잘 안쓰는 언어는 잘 까먹더라구요.

그래서 java에 대한 지식을 차곡 차곡 쌓아 두면 다음에 많이 써먹을 수 있습니다.

php는 생각보다 먼저 코드를 치고 있습니다.

치고 있는 그 코드가 정확하구용 ^^;;

하지만, 자바는 아직도 설레입니다.

걱정도 되구용.

그래서 책도 많이 사게 되고 인터넷에서 답을 발견하면 그걸

블로그에 옮겨 적습니다.

그러면 다음에 그을을 들어와서 참고 하면 되니깐요 ^^;;

앞으로도 비슷하지 않을까 생갃합니다만

조만간 좀 정신을 차리면

PHP에 관한 글들도 작성해 볼 생각입니다. ^^;;

그럼 모두들 즐거운 하루 되세용.


반응형
반응형
http://shinji.springnote.com/pages/619311

요즘 이슈 관리툴로 mantis를 사용해서 작업을 하고 있다.

trac을 사용하려고 했지만

trac이 잘 안되가지고 ㅋㅋㅋ

맨티도 무지 괜찮은 툴이더라구요

그런데

박재성님이 쓰신 자바 프로젝트 필수 유틸리티 책에 보니깐

trac과 eclipse의  MyLyn을 연동하는 부분이 나옵니다.

그래서 mantis와 eclipse는 연동이 안될까 하는 생각을 했습니다.

네 박사와 구글신에 문의를 해본 결과 위에 링크에 그 답이 있었습니다.

그런데

클라이언트는 제대로 설치를 했는데

제가 한 작업 중에 말썽이 있었습니다. ^^;;

mantis의 Web Service 서버버젼을 압축을 풀명 webservice/mc 이렇게 시작 합니다.

ㅋㅋㅋ 그래서 그대로 두었습니다.

그런데 T.T 저게 문제였습니다.

mc는 무조건 mantis가 설치된 디렉토리 아래에 설치 하십시오

이름은 어떻게 바꿔도 되지만 ^^;;

서버에 web service 설치 하실때 꼭 mantis의 하부 디렉토리에 설치 하셔야 됩니다. ^^;;

저같이 삽질 하는 사람이 없기를 바라면서 적습니다.^^;;

저도 다음에 삽질을 안하려구요.

PS.참 그리고, 이슈 관리툴로 mantis를 선택하게 된 이유는

mantis가 PHP로 되어 있다는 겁니다. ^^;;



반응형
반응형

보통은 sh나 bash를 통해서 쉘프로그래밍을 합니다.

하지만 저는 보통 PHP를 가지고 쉘 프로그램을 작성합니다.

php 문법을 이용해서 프로그램을 작성하시구요

패스가 걸려 있다는 전제하에서

php phpfilename.php

로 하시면 프로그램이 실행 됩니다.

php로 소켓두 가능하고, php로 여러가지가 가능하기 때문에 원하는 기능을 사용하시면 됩니다.

php로 쉘프로그래밍 을 할때 1번째 당면하는 문제는 아규먼트를 어떻게 받아 들일까 하는 것입니다.

1번째 방법은 다음 scanf 함수를 사용하는 것입니다.(from PHPSCHOOL)

function scanf(){
$fp=fopen("/dev/stdin","r");
$tmp=fgets($fp,2048);
fclose($fp);

return $tmp;
}

위 함수를 사용하시면
echo "내용을 입력해주세요>>";
$res=scanf();

위와 같이 하시면요

실행시에

내용을 입력해주세요>> 하고 커서가 깜밖거립니다. 그때 입력하시면 되고

$res 값을 이용해서 작업하시면 됩니다.

2번째 방법은 다음과 같이 C나 다른 언어 처럼 아규먼트로 넣는 방법입니다.

php phpfilename $변수명=값 $변수명=값

위와 같이 넣으시면

프로그램에서 $_GET[변수명]

또는 $_REQUEST[변수명]

으로 자료를 활용하실 수 있습니다.

반응형

+ Recent posts