웹 프로그램 제작 중에 관리자 모드에서 변경이 가능한 설정들 저장 방식을
DB로 할 것인가 파일로 할 것인가 고민하다가 파일쪽으로 눈을 돌렸습니다.
제가 고민이였던 부분은 파일로 할 경우
예를 들어 관리자 모드에서 설정을 변경하여
config.php에 "<?php $config = TRUE ?>" 내용을 저장할 경우
파일에 내용을 쓰는 도중에 "<?php $conf"까지 입력하였는데
갑자기 다른 페이지에서 config.php 파일 요청이 들어올 경우
쓰다가 만 파일을 읽어와 구문 오류로 인하여 페이지 자체가 보이지 않을까하는 불안감이 있었습니다.
직접 2개의 파일로 테스트를 해보았습니다.
-- index.php --
<?php
set_time_limit(5);
for ($i = 1; $i <= 100000000; $i++)
{
include './config.php';
}
-- save.php --
<?php
sleep(3);
$str = 'testa';
$str = str_pad($str, 11111111, "_");
$fp = fopen('./config.php', 'w');
fwrite($fp, "<?php \necho '<br>'.\$i;\n\"{$str}\";");
fclose($fp);
save.php 파일을 실행시키고 index.php에서 지속적으로 config.php을 불러올 경우
테스트를 해보니 다행이도 구문 오류는 나지 않고 타임아웃만 났습니다.
여러대의 서버를 묶어서 쓰거나 이런 경우는 테스트를 해보지 않았습니다만...
다행이 OS단에서 처리하는 것 같습니다 ^^....
이왕 테스트하는 김에 이번엔 내용 문자를 2개로 나눠서
fwrite() 함수를 2번 실행시키게 하였습니다.
-- save2.php --
<?php
sleep(3);
$str = 'testa';
$str = str_pad($str, 11111111, "_");
$fp = fopen('./config.php', 'w');
fwrite($fp, "<?php \necho '<br>'.\$i;\n\"");
fwrite($fp, "{$str}\";");
fclose($fp);
내용을 보면 첫번째 fwrite()만 작동시켰을 경우 구문 오류가 나도록 고치고
두번째 fwrite()에서 나머지 내용을 쓰도록 하였습니다.
fwrite()을 두번 실행시켰을 경우 그 사이에 다른 파일의 요청이 들어올 경우
가져갈 수 있었습니다....
실행시 문법 오류가 있었습니다.....
결론
1. 한번에 fwrite()을 쓸 것
2. fwrite()로 파일을 쓰는 짧은 시간동안은 외부에서 긁어가지 못함.
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 6130 |
gender
|
12년 전 | 1084 | |
| 6129 | 12년 전 | 1320 | ||
| 6128 |
|
12년 전 | 3461 | |
| 6127 | 12년 전 | 695 | ||
| 6126 |
|
12년 전 | 2206 | |
| 6125 |
|
12년 전 | 4883 | |
| 6124 | 12년 전 | 659 | ||
| 6123 | 12년 전 | 3838 | ||
| 6122 | 12년 전 | 1016 | ||
| 6121 | 12년 전 | 3749 | ||
| 6120 | 12년 전 | 906 | ||
| 6119 | 12년 전 | 1769 | ||
| 6118 | 12년 전 | 928 | ||
| 6117 | 12년 전 | 2147 | ||
| 6116 | 12년 전 | 7938 | ||
| 6115 | 12년 전 | 1918 | ||
| 6114 |
|
12년 전 | 1703 | |
| 6113 | 12년 전 | 1520 | ||
| 6112 | 12년 전 | 589 | ||
| 6111 | 12년 전 | 2109 | ||
| 6110 | 12년 전 | 1849 | ||
| 6109 | 12년 전 | 638 | ||
| 6108 | 12년 전 | 1197 | ||
| 6107 | 12년 전 | 617 | ||
| 6106 | 12년 전 | 901 | ||
| 6105 | 12년 전 | 1188 | ||
| 6104 | 12년 전 | 3591 | ||
| 6103 | 12년 전 | 2119 | ||
| 6102 | 12년 전 | 2311 | ||
| 6101 | 12년 전 | 3672 | ||
| 6100 | 12년 전 | 3481 | ||
| 6099 | 12년 전 | 3149 | ||
| 6098 | 12년 전 | 4022 | ||
| 6097 | 12년 전 | 1011 | ||
| 6096 | 12년 전 | 5977 | ||
| 6095 | 12년 전 | 1367 | ||
| 6094 | 12년 전 | 1223 | ||
| 6093 | 12년 전 | 3403 | ||
| 6092 | 12년 전 | 3048 | ||
| 6091 | 12년 전 | 5190 | ||
| 6090 | 12년 전 | 2700 | ||
| 6089 | 12년 전 | 3326 | ||
| 6088 | 12년 전 | 1013 | ||
| 6087 | 12년 전 | 843 | ||
| 6086 | 12년 전 | 2016 | ||
| 6085 |
|
12년 전 | 806 | |
| 6084 |
웹디자인되고파
|
12년 전 | 2216 | |
| 6083 | 12년 전 | 1506 | ||
| 6082 | 12년 전 | 1105 | ||
| 6081 | 12년 전 | 2097 | ||
| 6080 |
Stiven
|
12년 전 | 2310 | |
| 6079 |
프로프리랜서
|
12년 전 | 1314 | |
| 6078 |
프로프리랜서
|
12년 전 | 786 | |
| 6077 |
프로프리랜서
|
12년 전 | 1339 | |
| 6076 |
프로프리랜서
|
12년 전 | 827 | |
| 6075 |
프로프리랜서
|
12년 전 | 1217 | |
| 6074 | 12년 전 | 3854 | ||
| 6073 | 12년 전 | 3949 | ||
| 6072 | 12년 전 | 1373 | ||
| 6071 | 12년 전 | 6988 | ||
| 6070 | 12년 전 | 7572 | ||
| 6069 | 12년 전 | 2316 | ||
| 6068 | 12년 전 | 3866 | ||
| 6067 |
smwkd
|
12년 전 | 632 | |
| 6066 | 12년 전 | 3655 | ||
| 6065 | 12년 전 | 3482 | ||
| 6064 | 12년 전 | 2719 | ||
| 6063 | 12년 전 | 2837 | ||
| 6062 | 12년 전 | 2365 | ||
| 6061 | 12년 전 | 2274 | ||
| 6060 | 12년 전 | 5180 | ||
| 6059 | 12년 전 | 2807 | ||
| 6058 | 12년 전 | 3131 | ||
| 6057 | 12년 전 | 2258 | ||
| 6056 | 12년 전 | 6839 | ||
| 6055 | 12년 전 | 2579 | ||
| 6054 | 12년 전 | 3430 | ||
| 6053 | 12년 전 | 2323 | ||
| 6052 | 12년 전 | 4817 | ||
| 6051 | 12년 전 | 3704 | ||
| 6050 | 12년 전 | 2553 | ||
| 6049 | 12년 전 | 2240 | ||
| 6048 |
|
12년 전 | 1293 | |
| 6047 | 12년 전 | 3436 | ||
| 6046 | 12년 전 | 4093 | ||
| 6045 | 12년 전 | 3454 | ||
| 6044 | 12년 전 | 5331 | ||
| 6043 | 12년 전 | 1649 | ||
| 6042 | 12년 전 | 1279 | ||
| 6041 | 12년 전 | 5163 | ||
| 6040 | 12년 전 | 937 | ||
| 6039 | 12년 전 | 3407 | ||
| 6038 | 12년 전 | 3409 | ||
| 6037 | 12년 전 | 2991 | ||
| 6036 | 12년 전 | 3340 | ||
| 6035 | 12년 전 | 2866 | ||
| 6034 | 12년 전 | 2843 | ||
| 6033 | 12년 전 | 2865 | ||
| 6032 | 12년 전 | 2854 | ||
| 6031 | 12년 전 | 2877 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기