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);

이렇게 하시면 됩니다.

활용 잘 하시기를

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

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

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로 배치 프로그램 작성할일이 있어서

좀더 발전 되면

또 이어서 올리겠습니다.

어제까지 여러분들은 PHP의 모든 것을 배우셨다고 해도 과언이 아닙니다. 어제까지 배운 것만으로 프로그램을 작성하실 수 있습니다. 하지만 많이 부족하겠지용. 그래서 오늘 부터는 여러분들과 함께 실제로 프로그래밍을 어떻게 하는가를 알아 보면서 그게 따른 함수들을 알아 보도록 하겠습니다.

PHP는 내장 함수가 10000개가 넘습니다. 이걸 다 외우고 있기란 힘들다고 봐야겠죠 ^^;; 그래서 필요한 함수만을 사용하고 저는 다음 URL에서 찾아서 씁니다. 필요할때 마다 이때, 영어를 좀 해야겠지용 ㅋ ㅋ

http://www.php.net

저기 가시면 젤 윗 부분을 죽 훌터 보시면 Search for [     ] function list 라는 부분이 있습니다. 저는 항상 저기서 찾아서 씁니다. 필요한 함수와 함수의 활용 법을요.

그럼 실전으로 넘어 가 봅시다. 어제 춘길군이 제안을 했군요 카운터, 제가 제안을한 방명록이 있구요

일단 오늘은 여러분들께 출력문에 대해 알려 드리겠습니다.

출력문이란 그야말로 Web 페이지에다가 뿌리는 것을 말합니다.

출력문으로 PHP는 두가지를 제공합니다.

print와 echo가 바로 그것입니다. 두가지를 위에서 말한 펑션검색 시스템에서 검색을 하면 다음과 같은 결과를 보실 수 있습니다.(아직까지 검색 결과가 안뜨고 있습니다. ^^;;)

http://man.phpschool.com/manual/en/function.print.php

여기를 보십시오

그럼 이렇게 나옵니다.

print ( string arg)

저 말은 print("원하는 값");

이런 뜻을 내포하고 있습니다.

그래서 여러분들은 다음 예제를 샐행해 보십시오.
<?

print("Hello World");

?>

그럼 Hello World라고 웹 페이지에 찍히면 정상적으로 코딩을 하신 것입니다.

그리고 print 문은 다음과 같은 예외 코딩을 지원합니다.

print "Hello World";

print >>> END
원하는 내용을 막 적습니다.
원하는 내용 원하는 내용
워하는 내용
END; // 꼭 새줄에 END를 적을것

두번째 부분은 그냥 " "로 묶어 주셔도 된다는 뜻이구요 두번째 방법은 저도 잘 쓰진 않지만 END라는 문자열의 윗줄 까지를 출력하는 것입니다.

그럼 print문은 여기서 마치겠습니다.

echo 문으로 넘어가겠습니다.

http://man.phpschool.com/manual/en/function.echo.php

echo ( string arg1 [, string argn...])

윗줄과 같이 되어 있는 것을 보실 수 있을 겁니다.

이말은 echo 문은 print문과 동일합니다. 그런데 조금 다른점이 있다면

print 문은 한가지 문장 밖에 못옵니다 그런데 여러분장이 올 수 있습니다.

echo $a,$b,$c;

이런식으로 말입니다.

그리고 PHP 프로그래머들은 평소에 print보다는 echo 문을 많이 씁니다. 그 이유는 저도 잘 모르겠습니다.

출력분에서 특수 문자를 출력하기 위해서는 \ 를 사용합니다.

특수 문자는 다음과 같은 것들이 있습니다

$, ", \

위의 세가지를 출력하기 위해서는 \를 압에다가 붙이시면 됩니다. 그럼으로 다음과 같이 실제 프로그램에서는 쓰이겠지요.

<?
$jongha="jongha";

echo "\$jongha is $jongha";

echo "김종하가 어느날 말했습니다. \"사람들의 삶은 음.!!!\" 이라고";

echo "우리는 자랑스런 /대한국민\\입니다. ";

?>

이걸 실제로 실행해 보십시고 그리고 다음코딩 할때는 \를 한번 빼 보십시오.

그리고 에러 메시지를 확인해 보십시오

이 연습은 매우 중요합니다. 그 이유는 여러분들이 앞으로 코딩을 하면서 무한히 만날 에러를 디버깅하는데 좋은 경험을 제공합니다.

꼭 한번 해 보시길 바랍니다. 어떤 에러를 나타내는지..

여기다가 메모를 달아 주시면 숙제한걸로 생각하겠습니다. 숙제 안하면 다음 강좌는 안해도 되는 것으로 알겠습니다. ㅋ ㅋ ㅋ 숙제를 한분이라도 하시면 강좌는 계속 진행 합니다.

그럼 오늘은 출력 문에 대해서 배웠습니다.

PHP에서 출력문은 print와 echo 가 있으며 별차이가 없으면서도, PHPer들은 주로 echo를 사용합니다.

그리고, 오늘 내준 숙제 꼭 하시길 ....

그럼이만.

2009/01/31 09:08 2009/01/31 09:08

'PHP' 카테고리의 다른 글

PHP FTP Connect  (0) 2010.06.03
PHP 프로그래밍 - 최초의 프로그램  (0) 2010.06.02
PHP 출력문  (0) 2010.06.02
PHP 프로그래밍 - 최초의 프로그램  (0) 2010.06.02
윈도우즈에서 PHP 개발환경 구축 하기  (0) 2010.06.01
각종 용어들과 함수들(1)  (0) 2010.05.31

어제까지 PHP 프로그램을 작동할 수 있는 환경을 만들었습니다.

그럼으로 오늘은 한번 프로그램을짜서 실행해 보겠습니다.

PHP는 <? 로 시작해서 ?>로 끝납니다.

그럼으로 다음과 같은 형태가 됩니다.

<? echo("Hello PHP World"); ?>

그리고 다른 언어를 해보신 분들은 아실 겁니다.

PHP의 문장 마침 부호는 ; 입니다.

반듯이 ;를 찍는 습관을 기르십시오.

그럼 이제 PHP 프로그램을 하나 짜 보도록 하겠습니다.

우선, 윈도우즈 탐색기를 실행 하십시오.

그리고, 아무 드라이버나 폴더로 이동 하십시오.

그리고 도구/폴더옵션을 선택하십시오.

다음으로 보기를 선택하십시오.

옵션 중에 "알려진 형식의 파일 확장명 숨김"이 체크 되어 있으면 지우고

체크 되어 있지 않으면 그대로 둡니다.

그리고 확인을 클릭하고

윈도우즈 탐색기를 빠져 나옵니다.

이제 메모장(영문 윈도우즈는 Notepad)를 실행 하십시오.

아참 여기서 잠깐 어제 여러분들이 설치한 프로그램인 APM의 기본 설정은

다음 디렉토리를 Document Root로 이용합니다.

C:\APM_SETUP\htdocs\

주석 :  Document Root / 인터넷 문서의 시작 디렉토리를 뜻합니다.

그럼 이제 파일을 하나 만들어 봅니다.

메모장에 다음 문장을 복사해서 붙여 넣으십시오

<?

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

        $j=$j+$i;
    }

    echo ("1부터 100까지의 합은?".$j);
?>


붙여 넣고 메모장에서 파일/다른 이름으로 저장하기를

선택하고, 파일 형식을 모든 파일로 선택합니다.

그리고 폴더를 아까 말한 C:\APM_SETUP\htdocs\  로 위치하게 하고

파일 명을 first.php 로 해서 저장합니다.

그리고 여러분들의 APM 프로그램을 실행합니다.

또 웹브라우져를 열고

http://localhost/first.php

라고 칩니다.

그리고 가 값으로

1부터 100까지의 합은?5050

와 같이 나오면 PHP 프로그램이 작성 된 것입니다.

오늘 최초로 프로그램을 만들어 보았습니다.

그럼 다음 강좌에는 PHP 프로그램을 구성하는 요소들을 알아 보겠습니다.

그럼이만.

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

'PHP' 카테고리의 다른 글

PHP FTP Connect  (0) 2010.06.03
PHP 출력문  (0) 2010.06.02
PHP 프로그래밍 - 최초의 프로그램  (0) 2010.06.02
PHP 출력문  (0) 2010.06.02
윈도우즈에서 PHP 개발환경 구축 하기  (0) 2010.06.01
각종 용어들과 함수들(1)  (0) 2010.05.31

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호점에서 가져왔습니다.

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);
   }
?>



 팝업을 띄우고자 하시는 파일에 

 <script 부터
 </script> 까지를 <head>와 </head>

 사이에 넣으십시오

 <script type="text/javascript">
 <!--

     function openwin(url1, width1, height1, scrollbars1) {
        var wmolc_popup    = GetAttriCookie("k_info");
         if(wmolc_popup!="") {

            

        }else {

            window.open(url1, "", "width=" + width1 + ", height=" + height1 +", scrollbars=" + scrollbars1);

        }

     }

function GetAttriCookie( name ) {
    var nameOfCookie = name + "=";
    var x = 0;
    while ( x <= document.cookie.length ) {
        var y = (x+nameOfCookie.length);
        if ( document.cookie.substring( x, y ) == nameOfCookie ) {
            if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
                endOfCookie = document.cookie.length;
            return unescape( document.cookie.substring( y, endOfCookie ) );
        }
        x = document.cookie.indexOf( " ", x ) + 1;
        if ( x == 0 )
            break;
    }
    return "";
}

 -->

 </script>


 만드신 파일이 test1.html 이라면 WinSCP나 FTP프로그램으로 DocumentRoot 
폴더 밑에 올리십시오.

<body 태그를 찾아서

 onLoad='openwin("/test1.html", "600", "600", "yes")'

 를 추가 하십시오

 여기서 test1.html은 만드신 파일이구용

 첫번째 600은 가로 사이즈

 두번째 600은 세로 사이즈

 세번째 yes는 스크롤바를 생기도록 하겠다

 no로 하시면 없애겠다가 됩니다.


test.html 시작 -----------------------------
<html>
    <head>
        <title>팝업창 테스트</title>

        <script type="text/javascript">
        <!--
            function SetAttriCookie( name, value, expiredays ) {
                var todayDate = new Date();
                todayDate.setDate( todayDate.getDate() + expiredays );
                document.cookie = name + "=" + escape( value ) + "; path=/;";// expires=" + todayDate.toGMTString() + ";"
            }

            function checkValue1() {

                if(document.pwinf.k_popup1.checked==true) {
                    SetAttriCookie( "k_info", "1", 1 )

                }
                window.close();
            }
        -->
        </script>
    </head>
    <body>
        내용<br>
        <form name="pwinf">
        <input type="checkbox" name="k_popup1" value=1>Don't open this window today <input type="button" onClick="checkValue1();" value="닫기">
        </form>
    </body>
</html>
test.html 끝 -----------------------------


test.html 처럼

문서를 만드셔야 합니다.

저문서를 토대로 만드시면 될것 같습니다.

<body>
</body>

사이에 "내용" 대신에

원하시는 내용으로 대체 하시면 됩니다.






  1. 스마일 2009.06.24 10:25 신고

    좋은정보 담아갑니다. 출처는 꼭밝히겠습니다.
    문제가 되셔서 댓글달아주시면 스크랩 문서 삭제하겠습니다. ^^;;

    • 가야태자 2009.06.28 17:06 신고

      답변이 늦었습니다.

      출처 링크만 걸어 주신다면야 상관 없습니다. ^^;;

      벌써 퍼가셨더군요 ㅋㅋㅋ

      좋은 하루 되십시오..

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

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

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에 관한 글들도 작성해 볼 생각입니다. ^^;;

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


보통은 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