머리단과 바닥에 들어갈 화일을 작성하고 나서 본 화일에서 불러서 사용하면 된다.
main.php
<?php
include("include/header.ph");
print_html("main_htm/top.htm");
echo("<br><br>본문 내용이 들어가는 곳입니다.<br>");
echo("내용은 별거 없습니다.<br>");
echo("프레임을 나누지 않고, 본문 내용을 사용하는 것입니다.<br>");
echo("본문내용을 서브 함수를 이용해서 만들면 됩니다.<br>");
echo("다음 작업을 위해 쉬운 내용을 아주 어렵게 했습니다.<br>");
echo("이내용을 잘 이해하면 여러면에서 도움이 될것입니다.<br>");
print_html("main_htm/bottom.htm");
?>
|
include/header.ph
<?
/* 한라인 출력해주는 함수 */
function print_html($filename)
{
$fp = fopen( $filename, "r" );
while(!feof($fp))
{
$contents .= fgets($fp, 100);
}
fclose($fp);
echo "$contents";
}
?>
|
main_htm/top.htm
<html>
<head>
<title>나라비의 방</title>
<style TYPE="TEXT/CSS">
A:link {color: blue; text-decoration:none}
A:visited {color: navy; text-decoration:none}
A:hover {color: red; text-decoration:underline;}
</style>
</head>
<body>
<table border="0" width = "600" cellpadding="0" cellspacing="0">
<tr><td width="589" colspan="2" bgcolor="#f9cd8a">나라비의 방을 찾아주셔서 대단히 감사합니다.</td></tr>
<tr>
<tr>
<td width = "120" valign="top" colspan="0">
<table width = "120" border="0">
<tr><td width="120" bgcolor="#b5d490"><p> <b><br>홈으로</b></font></td></tr>
<tr><td width="120" bgcolor="#c3f298"><p> <font size="2">나라비 소개</font></td></tr>
<tr><td width="120" bgcolor="#c3f298"><p> <font size="2">나리비 소식</font></td></tr>
<tr><td width="120" bgcolor="#c3f298"><p> <font size="2">Windows NT</font></td></tr>
<tr><td width="120" bgcolor="#c3f298"><p> <font size="2">시(김소월)</font></td> </tr>
<tr><td width="120" bgcolor="#c3f298"><p> <font size="2">시(기타)</font></td> </tr>
<tr><td width="120" bgcolor="#c3f298"><p> <font size="2">질문과답변</font></td> </tr>
<tr><td width="120" bgcolor="#c3f298"><p> <font size="2">다른곳</font></td> </tr>
</table>
<td valign="top" align="center" width = "480">
|
main_htm/bottom.htm
</td>
</tr>
<tr>
<td colspan="2" align="center" valign="top">Copyright ⓒ 1999 nalabi.Mail to<a href="mailto:nalabi@hananet.net">webmaster</a></td>
</tr>
</table>
</body>
</html>
|
테이블 작성 (mysql DBNAME < test.tbl)
create table test (
no int default '0' not null auto_increment,
name char(10),
regdate date,
PRIMARY KEY(no)
);
|
name_input.php 작성
<html>
<body>
<form name="form" method="get" action="write_db.php3">
<inputtype="text" name="name" size="10">
<input type="submit" name="ok" value="보내기">
</form>
</body>
</html>
|
write_db.php 작성
<?
// MySQL 서버에 연결한다
$connect=mysql_connect( "localhost", "root", "") or die( "SQL server에 연결 할수 없습니다.");
$tbl_list = mysql_list_tables("kedu"); //데이타 베이스를 설정합니다.
$result = mysql_query("insert into test (name) values ('$name')");
$result=mysql_query($result, $connect );
$tbl_name="select * from test" ;
$result=mysql_query($tbl_name, $connect );
$print=mysql_fetch_array($result); //테이블의 내용을 가져옴
$rows = mysql_num_rows($result);
echo("입력 되었습니다..<br>");
for($i=0; $i< $rows;$i++)
{
echo("$print[name]<br>");
$print=mysql_fetch_array($result);
}
?>
|
테이블 작성 ( mysql DBNAME < test.tbl )
create table test (
no int default '0' not null auto_increment,
id char(10),
name char(10),
pw char(8),
regdate date,
regtime time,
PRIMARY KEY(no)
);
|
check_input.php 작성
<html>
<body>
<table>
<form name="form" method="post" action=access_db.php3>
<tr>
<td>아이디 </td>
<td><INPUT name=id size=10> <br></td></tr>
<tr>
<td>이 름 </td>
<td><INPUT name=name size=10> <br></td></tr>
<tr>
<td>비밀번호</td>
<td><INPUT name=pw size=10 type=password> <br></td></tr>
<tr>
<td>비밀번호확인</td>
<td><INPUT name=pw2 size=10 type=password> </td></tr></table>
<input type="submit" value="보내기">
</form>
</table>
</body>
</html>
|
access_db.php 작성
<?
// MySQL 서버에 연결한다
$connect=mysql_connect( "localhost", "root", "") or die( "SQL server에 연결 할수 없습니다.");
$tbl_list= mysql_list_tables("kedu"); //데이타 베이스를 설정합니다.
if($id == "") {
echo "아이디를 입력 하지 않았습니다.";
}
elseif($name == ""){
echo "이름을 입력 하지 않았습니다.";
}
elseif($pw == ""){
print "비밀번호를 입력하지않았습니다.<br>";
print "비밀번호를 입력 해주세요.<br>";
}
elseif($pw2 == ""){
print "비밀번호확인을 입력하지 않았습니다.<br>";
print "비밀번호확인을 입력 해주세요.<br>";
}
elseif($pw != $pw2) {
print "비밀번호가 같지 않습니다. <br>";
print "비밀번호를 다시 입력 해주세요. <br>";
}
else {
echo "$id가 입력 되었습니다..<br>";
$date = date("y-m-d", time());
$result = mysql_query("insert into test values ('','$id','$name','$pw','$date','$time')");
$result=mysql_query($result, $connect);
$tbl_name="select *from test" ;
$result=mysql_query($tbl_name, $connect );
$print=mysql_fetch_array($result); //테이블의 내용을 가져옴
$rows = mysql_num_rows($result);
for($i=0; $i< $rows;$i++)
{
echo("$print[id] $print[name] $print[pw] $print[regdate]<br>");
$print=mysql_fetch_array($result);
}
}
?>
|
테이블 출력 프로그램
<?
// MySQL 서버에 연결한다
$connect=mysql_connect( "localhost", "username", "") or die( "Unabletoconnect to SQL server");
//--------------------------------------------------------------------------
// 사용가능한 DB 목록을 검색
//--------------------------------------------------------------------------
$dblist = mysql_listdbs(); //데이타 베이스 목록을 인식한다.
$dbnum=mysql_num_rows($dblist); //데이타 베이스 갯수를 변수에 저장한다.
for($i=0; $i < $dbnum; $i++) //데이타 베이스 갯수 만큼
{
$dbname[$i] = mysql_dbname($dblist, $i) ; //데이타 베이스 목록 이름을 변수에 저장한다.
}
echo "데이타 베이스 검색 내용 <br>";
for($i=0; $i < count($dbname); $i++)
{ //데이타 베이스 갯수 만큼
echo "$dbname[$i] <br>"; // 데이타 베이스 이름을 웹에 나타내준다.
}
//--------------------------------------------------------
// 사용가능한 테이블 목록을 검색
//--------------------------------------------------------
$tbl_list = mysql_list_tables("board"); //데이타 베이스를 설정합니다.
$tbl_num=mysql_num_rows($tbl_list); // 테이블 갯수를 변수에 저장합니다.
echo "<br>데이타 테이블 검색 내용--> 테이블명,레코드수<br>";
for($i=0; $i < $tbl_num; $i++) //테이블 갯수 만큼
{
$tbl_name[$i] = mysql_tablename($tbl_list,$i) ; // 테이블 이름을 변수에 저장
$result[$i] = mysql_query( "SELECT * FROM $tbl_name[$i]"); //테이블의 내용을 변수에 저장
$rows[$i] = mysql_num_rows($result[$i]); // 테이블의 레코드 수를변수에 저장
echo "$tbl_name[$i], $rows[$i], $name <br>"; //테이블의 이름과, 레코드수를 웹에 출력 해줍니다.
}
//--------------------------------------------------------------------
// 사용가능한 테이블 내용을 출력
//--------------------------------------------------------------------
$tbl_name="select * from test" ;
$result=mysql_query($tbl_name, $connect );
$print=mysql_fetch_array($result); //테이블의 내용을 가져옴
echo("<br>테이블 내용을 화면에 출력 시켜 줍니다.<br>");
echo("이름, 나이, 전화번호부, 주소<br>");
echo("$print[name], $print[age], $print[tel], $print[addr]<br>");
//-------------------------------------------------------------------------------
// 사용가능한 테이블 내용을 전체 출력
//-------------------------------------------------------------------------------
$que_bbs="select * from test" ;
$result=mysql_query($que_bbs,$connect );
$print=mysql_fetch_array($result);
$rows = mysql_num_rows($result);
echo("<br>테이블 내용 전체를 출력 시켜 줍니다.<br>");
echo("이름, 나이, 전화번호부, 주소<br>");
for($i=0; $i < $rows; $i++)
{
echo("$print[name], $print[age], $print[tel], $print[addr]<br>");
$print=mysql_fetch_array($result);
}
?>
|
mysql_free_result 를 해서 메모리를 풀어 준다.
<?
mysql_connect($db_server, $db_user, $db_pass);
$result = mysql_db_query("$db_name","select * from $table_name");
while($row = mysql_fetch_array($result))
{
echo $row["no"];
echo $row["name"];
echo " ";
}
mysql_free_result($result);
?>
|
<?
Header("Content-type: image/gif");
$file = "test.gif";
$size = 4096;
if (!($fp = fopen($file, "r")))
{
die("could not open input");
exit;
}
while ($data = fread($fp,$size))
{
print($data);
}
?>
|
달력 예제
<?
// 변수값 설정
$date=01;
$day=01;
$off=0;
//년도 달 설정
$year = '2000';
$month = '01';
/* Figure out how many days are in this month */
while (checkdate($month,$date,$year)):
$date++;
endwhile;
// 메뉴 표시하기
echo "<table width='420' ><tr><td align = center>$year 년 $month 월</td></tr></table>";
echo "<table border='1' width='420'><tr>";
echo "<td><b><font face='돋음'>월</font></b></td>";
echo "<td><b><font face='돋음'>화</font></b></td>";
echo "<td><b><font face='돋음'>수</font></b></td>";
echo "<td><b><font face='돋음'>목</font></b></td>";
echo "<td><b><font face='돋음'>금</font></b></td>";
echo "<td><b><font face='돋음'>토</font></b></td>";
echo "<td><b><font face='돋음'>일</font></b></td>";
echo "<tr>";
//루프 돌리기
while ($day<$date):
/* Figure what day of the week the first falls on and set the number of preceding and trailing cells accordingly */
if ($day == '01' and date('l', mktime(0,0,0,$month,$day,$year)) == 'Sunday')
{
echo "<td>$day</td>";
$off = '01';
}
elseif ($day == '01' and date('l', mktime(0,0,0,$month,$day,$year)) == 'Monday')
{
echo "<td></td><td>$day</td>";
$off= '02';
}
elseif ($day == '01' and date('l', mktime(0,0,0,$month,$day,$year)) == 'Tuesday')
{
echo "<td></td><td></td><td>$day</td>";
$off= '03';
}
elseif ($day == '01' and date('l', mktime(0,0,0,$month,$day,$year)) == 'Wednesday')
{
echo "<td></td><td></td><td></td><td>$day</td>";
$off= '04';
}
elseif ($day == '01' and date('l', mktime(0,0,0,$month,$day,$year)) == 'Thursday')
{
echo "<td></td><td></td><td></td><td></td><td>$day</td>";
$off= '05';
}
elseif ($day == '01' and date('l', mktime(0,0,0,$month,$day,$year)) == 'Friday')
{
echo "<td></td><td></td><td></td><td></td><td></td><td>$day</td>";
$off= '06';
}
elseif ($day == '01' and date('l', mktime(0,0,0,$month,$day,$year)) == 'Saturday')
{
echo "<td></td><td></td><td></td><td></td><td></td><td></td><td>$day</td>";
$off= '07';
}
else
{
echo "<td>$day</td>";
}
//일 증가 시키기
$day++;
$off++;
if ($off>7)
{
echo "</tr><tr>";
$off='01';
} else
{
echo "";
}
endwhile;
echo "</table>";
?>
|
어떤 문자열 중에서 000 이라는 문자열의 레코드를 찾아 내기
표현 :
int ereg(string pattern, string string, array [regs]);
사용법 :
ereg(찾을 패턴, 검사할 문자열, 결과 배열);
예제 :
ereg("([0]{3})", $hash[code], $regs)
각각의 패턴은 ()로 정의를 합니다.
([0]{3})는 0의갯수가 3개로 나와야한다는 의미이다.
([0]{2, 3}) 0의 갯수가 2개 혹은 3개를 의미
([0-9]{2, 3}) 0에서 9까지의 숫자가 2자리 혹은 3자리를 의미
<?
$sth = mysql_query("select * from kangsa_type order by code");
while($hash = mysql_fetch_array($sth))
{
if(ereg("([0]{3})", $hash[code], $regs))
{
print "$hash[typename]";
}
}
?>
|
auth.sql 을 먼저 작성을한다.
# MySQL dump 6.6
#
# Host: localhost Database: myhome
#--------------------------------------------------------
# Server version 3.23.8-alpha
#
# Table structure for table 'auth'
#
CREATE TABLE auth (
id char(10) DEFAULT '' NOT NULL,
passwd char(10),
name char(10),
level int(11),
PRIMARY KEY (id)
);
#
# Dumping data for table 'auth'
#
INSERT INTO auth VALUES ('nalabi','xxxx','김용일',1);
|
auth.ph 인증하는 부분을 작성한다.
<?php
cfunction authenticate()
{
Header( "HTTP/1.0 401 Unauthorized");
$title= "Invalid Login";
?>
아이디와 암호가 필요합니다!
<?php exit;
}
if(!isset($PHP_AUTH_USER))
{
authenticate();
} else
{
mysql_pconnect( 'localhost', 'root', '') or die( "Unable to connect to SQL server"); // MySQL 서버 접속
mysql_select_db( "test") or die( "Unable to select database"); // DB 선택
$result = mysql_query( "select name , level from auth where id='$PHP_AUTH_USER' and passwd='$PHP_AUTH_PW' ");
if(!mysql_num_rows($result))
{
authenticate();
}
else
{
$userinfo = mysql_fetch_array($result);
}
}
?>
|
test.php 프로그램 하는데서 인증하는 부분을 적용한다.
<?
include ("auth.ph");
echo("어서 오십시요.");
?>
|
kernel.php
<?
function kernel()
{
$label = array("안정버전","개발버전","알파버전");
$cmd = "/usr/bin/finger @ftp.kernel.org| cut -c59-66 | sed -e '/^$/d'";
exec($cmd,$array,$rtn);
for($i=0; $i < count($array); $i++)
{
list($v1, $v2, $v3) = split('[/.-]' , $array[$i]);
$version = "v".$v1.".".$v2."/linux-".$array[$i].".tar.gz";
$label[$i] = "<a href = ftp://ftp.kernel.org/pub/linux/kernel/".$version.">".$label[$i]." : ".$array[$i]."</a>";
}
return $label;
}
$label = kernel();
echo("$label[0] <br> $label[1] <br> $label[2]");
?>
|
whois 프로그램이 깔려 있어야 합니다.
rpm -qa | grep whois
whois-1.0.10-1
|
프로그램
<?
function domain($string)
{
$cmd = "whois $string";
exec($cmd,$array,$rtn);
for ($i=0; $i < count($array); $i++)
{
$rstring .= "$array[$i]";
}
return $rstring;
}
print domain("formail.org");
?>
|
문자열에 영어 대소문자, 숫자만 오도록 하게 하는 함수입니다
<?
function check_id($string)
{
$error_msg = "error";
if (ereg("[^a-zA-Z0-9]", $string))
{
$error_msg = $error_msg;
return $error_msg;
}
else
{
return $string;
}
}
$id1 = "abcd";
$id2 = "ZabCA";
$id3 = "9Zab01";
$id4 = "#ab.c.%";
$id5 = "한글";
$msg = check_id($id1);
print "id1 : $msg";
$msg = check_id($id2);
print "id2 : $msg";
$msg = check_id($id3);
print "id3 : $msg";
$msg = check_id($id4);
print "id4 : $msg";
$msg = check_id($id5);
print "id5 : $msg";
?>
|
sql 문
# MySQL dump 7.2
#
# Host: localhost Database: test
#--------------------------------------------------------
# Server version 3.23.11-alpha
#
# Table structure for table 'login3'
#
CREATE TABLE login3 (
nick char(10)
);
#
# Dumping data for table 'login3'
#
INSERT INTO login3 VALUES ('나라비');
|
test.php
<?
function add_error($why, $reason, $nick)
{
print "$reason<br>";
}
$nick= "나라비";
if (ereg ("[~!@#$%^&*()~|"/'+=-_:;,.<>]", $nick))
{
$why="닉네임";
$reason="닉네임에 특수문자가 있습니다.";
add_error($why,$reason,$nick);
exit;
}
if(ereg(" ", $nick))
{
$why="닉네임";
$reason="닉네임에 공백이 있습니다.";
add_error($why,$reason,$nick);
exit;
}
if($nick=="")
{
$head = "닉네임";
$mesg = "닉네임이 없습니다.";
add_error($head,$mesg,$nick);
}
if(strlen($nick) < 2)
{
$head = "닉네임";
$mesg = "닉네임은 특수문자를 제외한 2자이상으로 넣어주세요.";
add_error($head,$mesg,$nick);
}
$server = "localhost";
$name = "root";
$passwd = "";
$dbname = "test";
mysql_connect($server, $name, $passwd);
mysql_select_db($dbname);
$que1 = "select nick from login3 where nick='$nick'";
$result= mysql_query($que1);
$current_row = mysql_fetch_row($result);
if($current_row[0] == $nick)
{
$head = "닉네임";
$reason = $nick."님이 이미 등록되어 있습니다.";
add_error($why,$reason,$nick);
}
else
{
print $nick;
}
?>
|
sql 문
# MySQL dump 6.4
#
# Host: localhost Database: test
#--------------------------------------------------------
# Server version 3.23.5-alpha
#
# Table structure for table 'login'
#
CREATE TABLE login (
id char(10) DEFAULT '' NOT NULL,
reg_date char(10),
nick char(10),
passwd char(10),
name char(10),
user_num int(11),
address char(10),
phone char(10),
email char(10),
job char(10),
PRIMARY KEY (id)
);
#
# Dumping data for table 'login'
#
INSERT INTO login VALUES ('nalab1','','aaaa','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nalab2','','bbbb','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nalab3','','cccc','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nalab4','','dddd','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nalab5','','eeee','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nalab6','','ffff','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nalab7','','gggg','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nalab8','','hhhh','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nalab9','','iiii','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nala10','','jjjj','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nala11','','kkkk','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nala12','','llll','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nala13','','mmmm','bbbb','1111',0,'1','cccc','dddd','eeee');
INSERT INTO login VALUES ('nala14','','nnnn','bbbb','1111',0,'1','cccc','dddd','eeee');
|
test.php
<?
$server = "localhost";
$name = "root";
$passwd = "";
$dbname = "test";
mysql_connect($server, $name, $passwd);
mysql_select_db($dbname);
$page_scale=3; //한페쥐당 보여줄 숫자 번호[1][2][3]
$scale=2; // 한페이쥐 당 보여줄 라인 개수(레코드)
if(!$star){ $star= 0 ;} // 시작할 레코드 번호 - 1
$page=floor($star/($scale*$page_scale)); // 페이지 수 얻기
$que1="select DATE_FORMAT(reg_date,'Y.m.d'), id,nick, passwd ,name , user_num, address, phone, email, job from login order by reg_date DESC " ;
$result = mysql_query($que1);
$total = mysql_affected_rows(); //게시물 총 수
$last=floor($total/$scale); //마지막 번호
echo "<font size=-1>전체 등록자 : $total 명 입니다.";
echo "<html><title>회원관리</title><body bgcolor=ffffff><center><font size=4>회원관리 페이지</font>
<table border=1><tr bgcolor=336699>
<td align=center><font color=ffffff size=-1>등록일</font><td align=center><font color=ffffff size=-1>ID</font></td>
<td align=center><font color=ffffff size=-1>닉네임</font></td>
<td align=center><font color=ffffff size=-1>비밀번호</font></td>
<td align=center><font color=ffffff size=-1>이름</font></td>
<td align=center><font color=ffffff size=-1>주민등록번호</font></td>
<td align=center><font color=ffffff size=-1>주소</font></td>
<td align=center><font color=ffffff size=-1>연락처</font></td>
<td align=center><font color=ffffff size=-1>E-Mail</font></td>
<td align=center><font color=ffffff size=-1>직업</font></td>
<td align=center><font color=ffffff size=-1>관리</font></td></tr>";
if($star)
{
$n=$total-$star;
}
else
{
$n=$total;
}
for($i=$star ; $i< $star+$scale ; $i++) // star 에서 scale 까지 만
{
if($i< $total ) // 전체 자료 개수까지만 출력
{
mysql_data_seek($result,$i);
$row=mysql_fetch_array($result);
$imsi=$row[5];
echo"<tr><td align=center><font size=-1>$row[0]</font></td>
<td align=center><font size=-1>$row[1]</font></td>
<td align=center><font size=-1>$row[2]</font></td>
<td align=center><font size=-1>$row[3]</font></td>
<td align=center><font size=-1>$row[4]</font></td>
<td align=center><font size=-1>$row[5]</font></td>
<td align=center><font size=-1>$row[6]</font></td>
<td align=center><font size=-1>$row[7]</font></td>
<td align=center><font size=-1><a href=mailto:$row[8]>$row[8]</font></a></td>
<td align=center><font size=-1>$row[9]</font></td>
<td align=center><font size=-1><a href=$admin_url?action=erase&num=$row[5]&start=$start>삭제</a></font></td></tr> ";
}
$n--;
}
echo "</table><br><br>";
if($total>$scale)
{
if($star+1>$scale*$page_scale)
{
$pre_star=$star-$scale;
echo"<a href='$PHP_SELF?star=$pre_star'> 이전</a>";
}
for($vj=0; $vj < $page_scale ; $vj++)
{
$ln=($page*$page_scale+$vj)*$scale;
$vk=$page*$page_scale+$vj+1;
if($ln < $total)
{
if($ln!=$star)
{
echo"<a href='$PHP_SELF?star=$ln'><font size=2>[$vk]</a></font>";
}
else
{
echo"<font size-2><b>$vk</b></font>";
}
}
}
if($total>(($page+1)*$scale*$page_scale))
{
$n_star=($page+1)*$scale*$page_scale;
echo"<a href='$PHP_SELF?star=$n_star'>다음</a>";
}
}
?>
|
정규식 표현
a(b*) : a, ab, abb, a와 임의의 갯수들로 된 문자열
a(b+) : ab, abb, abbb, ab와 임의의 갯수들로 된 문자열
a(b?) : a or ab, a 다음에 b가 있어도 되고, 없어도 된다.
a(b{3}) : abbb
a(b{2,}) : abb, abbb, abbbb, a 와 두개 이상의 b들로 된 문자열
a(b{2.4}) : abb, abbb, abbbb, a 와 두개 이상, 네 개 이하의 b들로 된 문자열
[a-z] : a-z 까지 문자열
[a-zA-Z0-9] : 임의 영숫자
|
공백 문자
[^0-9] : 임의 숫자가 아닌문자
[~a-zA-Z0-9]: 임이의 영숫자가 아닌 문자
|
임의의 공백문자가 아닌 문자
a.c : aac, abc, acc, a 와 c에 임의의 문자 하나가 끼어 있는 문자열
^a.* : a로 시작하는 임의의 문자열
[a-c]*x$ : x, ax, bx, abax, abcx, a에서 c사이의 임의의 문자들로이루어지며, 마지막 문자가 x인 문자열
b[ao]y : bay 또는 boy에인 문자열
[^Zz]{5} : Z or z 가 포함되지 않은 길이가 5인 임의의 문자열
[[:digit:]] : 임의의 숫자 , [0-9]
[[:<:]a.* : a로 시작하는 임의의 문자열
예) ^([0-9]{2,4})(-[0-9]{3,4})(-[0-9]{3,4}) : 전화번호(xxxx-xxxx-xxxx)
|
engdic 프로그램이있나 확인하고 없으면 설치한다.
which engdic
test.php, exec 를 사용해서 engdic 프로그램을 실행한다.
<?
// 영한/ 사전 입니다.
function engdic($string)
{
$cmd = "engdic $string";
exec($cmd,$array,$rtn);
for ($i=0; $i < count($array); $i++)
{
$rstring .= "$array[$i]";
}
return $rstring;
}
print engdic("hello");
?>
|
fwhois 프로그램이있나 확인하고 없으면 설치한다.
which fwhois
test.php, exec 를 사용해서 engdic 프로그램을 실행한다.
<?
//아이피 소속 회사, 기관 알아내는 함수
function ip($string)
{
$cmd = "fwhois $string"."@whois.nic.or.kr";
exec($cmd,$array,$rtn);
for ($i=0; $i < count($array); $i++)
{
$rstring .= "$array[$i]";
}
return $rstring;
}
print ip("210.180.116.238");
?>
|
<?
function date_selector($name, $date)
{
$monthname = array(1=>"1월", "2월", "3월", "4월","5월","6월","7월","8월","9월","10월", "11월","12월");
if($date == "")
{
$date = time();
}
//년
print "<select name = ".$year." year > ";
$start_year = date("Y", $date);
for($current_year = $start_year - 5; $current_year <= $start_year + 5; $current_year++)
{
print "<option value = $current_year";
if(date("Y", $date) == $current_year)
{
print " selected ";
}
print " > $current_year ";
}
print "</select>";
//월
print "<select name = ".$month." month >";
for($current_month = 1; $current_month <= 12; $current_month++)
{
print "<option value = $current_month ";
if(date("m", $date) == $current_month)
{
print " selected ";
print ">";
print $monthname[$current_month];
}
else
{
print ">";
print $monthname[$current_month];
}
print " ";
}
print "</select>";
//일
print "<select name = ".$day." day >";
for($current_day = 1; $current_day <= 31; $current_day++)
{
print "<option value = $current_day ";
if(date("d", $date) == $current_day )
{
echo " selected ";
}
echo " > $current_day 일";
}
print "</select>";
}
echo "<html>
<head>
<title>연습</title>
<body>";
if(isset($month))
{
//$use_date = mktime(0, 0, 0, $sample_month, $sample_day, $sample_year);
$use_date = mktime(0, 0, 0, $month, $day, $year);
}
else
{
$use_date = time();
}
print "<form action = cal.php method = post>";
print date_selector("cal", $use_date);
echo "<input type = submit value = 입력>
</form>
</body>
</html>";
?>
|