묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
[질문] 파일에 메모 저장할려면?
2006.09.24 21:30
안녕하세요.
제로보드의 PHP 강좌의 http://www.nzeo.com/bbs/zboard.php?id=p_study&no=1220
파일을 이용한 메모장 만들기에서 의문이 생겨 질문을 드립니다.
현재 저의 소스는...
1. 메모 입력 파일 : memo.htm
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title>메모장</title>
<meta name="generator" content="Namo WebEditor v5.0">
</head>
<body bgcolor="#333333" text="black" link="blue" vlink="purple" alink="red" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0">
<p align="center" style="line-height:100%; margin-top:3; margin-bottom:0;">
<form action="memo_save.html">
<textarea name=memo rows="25" style="background-color:#ffffff; border-width:3px; border-top-color:#666666; border-right-color:#999999; border-bottom-color:#666666; border-left-color:#999999; border-style:solid; overflow-y:auto; overflow-x:hidden; word-break:break-all;" class=memo cols="37">
<?
$fp = fopen("memo.txt","r");
$temp = fgets($fp);
echo $temp;
?>
</textarea>
<p style="margin-top:3;" align="center"><input type=submit value=" 메모 저장하기 " style="font-family:Tahoma; font-size:8pt; color:white; line-height:150%; background-color:rgb(153,0,0); border-color:rgb(176,176,176); height:25px;" onfocus=blur() align=absmiddle accesskey="s"><input type=button value=" 메모장 닫기 " style="font-family:Tahoma; font-size:8pt; color:white; line-height:150%; background-color:rgb(153,0,0); border-color:rgb(176,176,176); height:25px;" onclick=window.close() onfocus=blur() align=absmiddle accesskey="q">
</body>
</form>
</html>
<?
fclose($fp);
?>
2. 메모 업데이트 파일 : memo_save.html
<?
$fp = fopen("memo.txt","a+");
$temp = "$memorn";
fputs($fp,$temp);
fclose($fp);
?>
<script>
location.href="memo.htm";
</script>
3. 메모 저장 파일 : memo.txt
로 구성되어 있습니다.
제가 구현하고 싶은것은 <textarea>memo.txt 의 정보를 전체 출력</textarea> 되게끔 하여
수정 후 저장 버튼을 누르면 memo.txt 파일에 덮어씌우는 방법으로 구현하고 싶습니다.
지금은 <textarea>memo.txt 의 첫줄만 출력</textarea> 됨으로써 저장 버튼을 누르면
첫줄과 함께 추가로 입력된 부분이 memo.txt 파일에 추가되는 방식으로 보입니다.
도와주시면 큰 힘이 되겠습니다.
링크 : http://hellowow.nabia.net/wow/point/memo.htm
제로보드의 PHP 강좌의 http://www.nzeo.com/bbs/zboard.php?id=p_study&no=1220
파일을 이용한 메모장 만들기에서 의문이 생겨 질문을 드립니다.
현재 저의 소스는...
1. 메모 입력 파일 : memo.htm
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title>메모장</title>
<meta name="generator" content="Namo WebEditor v5.0">
</head>
<body bgcolor="#333333" text="black" link="blue" vlink="purple" alink="red" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0">
<p align="center" style="line-height:100%; margin-top:3; margin-bottom:0;">
<form action="memo_save.html">
<textarea name=memo rows="25" style="background-color:#ffffff; border-width:3px; border-top-color:#666666; border-right-color:#999999; border-bottom-color:#666666; border-left-color:#999999; border-style:solid; overflow-y:auto; overflow-x:hidden; word-break:break-all;" class=memo cols="37">
<?
$fp = fopen("memo.txt","r");
$temp = fgets($fp);
echo $temp;
?>
</textarea>
<p style="margin-top:3;" align="center"><input type=submit value=" 메모 저장하기 " style="font-family:Tahoma; font-size:8pt; color:white; line-height:150%; background-color:rgb(153,0,0); border-color:rgb(176,176,176); height:25px;" onfocus=blur() align=absmiddle accesskey="s"><input type=button value=" 메모장 닫기 " style="font-family:Tahoma; font-size:8pt; color:white; line-height:150%; background-color:rgb(153,0,0); border-color:rgb(176,176,176); height:25px;" onclick=window.close() onfocus=blur() align=absmiddle accesskey="q">
</body>
</form>
</html>
<?
fclose($fp);
?>
2. 메모 업데이트 파일 : memo_save.html
<?
$fp = fopen("memo.txt","a+");
$temp = "$memorn";
fputs($fp,$temp);
fclose($fp);
?>
<script>
location.href="memo.htm";
</script>
3. 메모 저장 파일 : memo.txt
로 구성되어 있습니다.
제가 구현하고 싶은것은 <textarea>memo.txt 의 정보를 전체 출력</textarea> 되게끔 하여
수정 후 저장 버튼을 누르면 memo.txt 파일에 덮어씌우는 방법으로 구현하고 싶습니다.
지금은 <textarea>memo.txt 의 첫줄만 출력</textarea> 됨으로써 저장 버튼을 누르면
첫줄과 함께 추가로 입력된 부분이 memo.txt 파일에 추가되는 방식으로 보입니다.
도와주시면 큰 힘이 되겠습니다.
링크 : http://hellowow.nabia.net/wow/point/memo.htm
댓글 3
-
EDENe
2006.09.25 09:05
-
오진호
2006.09.25 11:28
EDENe //
감사합니다.
일러주신대로 적용하니 안되서 참고 링크를 확인해보니
fread ($fd,파일크기) 를 적어야 됐네요.
덕분에 해결했습니다.
그런데, 파일크기라 함은 memo.txt 파일에 최대 크기를 지정해주는것인지요. -
EDENe
2006.10.02 04:06
답변이 늦어서 죄송합니다...
파일 사이즈는 간단하게 filesize라는 함수를 사용해주시면 됩니다.
filesize("memo.txt");
fread("memo.txt", filesize("memo.txt");
fgets()가 한줄만 읽어오는 함수라면, 파일 전체를 읽어드리는 함수는 fread()라는 것이 있습니다.
또한 memo.txt에 새로운 내용이 저장될 때,
기존의 내용이 보존되는 이유는 fopen("memo.txt","a+"); 에서 a+라는 값 때문입니다.
a+의 기능은 새로운 내용이 저장될 때, 기존의 저장된 값은 마지막 부분부터 값이 입력되도록 합니다.
완전히 덮어 씌우시고 싶으면 a+ 대신에 w를 이용하시면 됩니다.
a+, w 외에도 여러가지 종류가 있으니 php.net을 참고하세요.
참고하세요:
fgets() http://kr.php.net/manual/kr/function.fgets.php
fread() http://kr.php.net/manual/kr/function.fread.php
fopen() http://kr.php.net/manual/kr/function.fopen.php