웹 프로그램 제작 중에 관리자 모드에서 변경이 가능한 설정들 저장 방식을
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()로 파일을 쓰는 짧은 시간동안은 외부에서 긁어가지 못함.
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 6230 |
senseme
|
12년 전 | 1057 | |
| 6229 |
senseme
|
12년 전 | 1077 | |
| 6228 | 12년 전 | 4441 | ||
| 6227 |
senseme
|
12년 전 | 1494 | |
| 6226 |
senseme
|
12년 전 | 1641 | |
| 6225 | 12년 전 | 5498 | ||
| 6224 | 12년 전 | 3269 | ||
| 6223 |
kiplayer
|
12년 전 | 2140 | |
| 6222 | 12년 전 | 1301 | ||
| 6221 | 12년 전 | 3490 | ||
| 6220 | 12년 전 | 2512 | ||
| 6219 | 12년 전 | 2227 | ||
| 6218 |
senseme
|
12년 전 | 1841 | |
| 6217 |
senseme
|
12년 전 | 1532 | |
| 6216 |
senseme
|
12년 전 | 1528 | |
| 6215 |
senseme
|
12년 전 | 1283 | |
| 6214 | 12년 전 | 2397 | ||
| 6213 |
senseme
|
12년 전 | 1668 | |
| 6212 |
senseme
|
12년 전 | 1343 | |
| 6211 |
senseme
|
12년 전 | 2429 | |
| 6210 |
senseme
|
12년 전 | 1609 | |
| 6209 | 12년 전 | 2217 | ||
| 6208 | 12년 전 | 3439 | ||
| 6207 | 12년 전 | 1223 | ||
| 6206 |
senseme
|
12년 전 | 2197 | |
| 6205 | 12년 전 | 1035 | ||
| 6204 |
kiplayer
|
12년 전 | 1527 | |
| 6203 |
senseme
|
12년 전 | 2119 | |
| 6202 |
senseme
|
12년 전 | 1752 | |
| 6201 |
senseme
|
12년 전 | 4564 | |
| 6200 |
senseme
|
12년 전 | 2664 | |
| 6199 |
senseme
|
12년 전 | 2829 | |
| 6198 |
senseme
|
12년 전 | 1233 | |
| 6197 |
senseme
|
12년 전 | 8550 | |
| 6196 |
senseme
|
12년 전 | 3340 | |
| 6195 | 12년 전 | 1431 | ||
| 6194 |
|
12년 전 | 1286 | |
| 6193 |
senseme
|
12년 전 | 2693 | |
| 6192 |
senseme
|
12년 전 | 5362 | |
| 6191 |
senseme
|
12년 전 | 3414 | |
| 6190 | 12년 전 | 1340 | ||
| 6189 | 12년 전 | 13493 | ||
| 6188 |
웹디자인되고파
|
12년 전 | 1206 | |
| 6187 | 12년 전 | 619 | ||
| 6186 | 12년 전 | 3931 | ||
| 6185 | 12년 전 | 1470 | ||
| 6184 | 12년 전 | 9376 | ||
| 6183 | 12년 전 | 788 | ||
| 6182 |
senseme
|
12년 전 | 1238 | |
| 6181 |
senseme
|
12년 전 | 3218 | |
| 6180 |
senseme
|
12년 전 | 848 | |
| 6179 |
senseme
|
12년 전 | 1762 | |
| 6178 | 12년 전 | 3631 | ||
| 6177 | 12년 전 | 1064 | ||
| 6176 | 12년 전 | 954 | ||
| 6175 |
senseme
|
12년 전 | 5300 | |
| 6174 |
senseme
|
12년 전 | 1426 | |
| 6173 |
senseme
|
12년 전 | 752 | |
| 6172 |
senseme
|
12년 전 | 2741 | |
| 6171 |
senseme
|
12년 전 | 2481 | |
| 6170 |
senseme
|
12년 전 | 1502 | |
| 6169 |
senseme
|
12년 전 | 2928 | |
| 6168 |
senseme
|
12년 전 | 6535 | |
| 6167 | 12년 전 | 2136 | ||
| 6166 | 12년 전 | 743 | ||
| 6165 |
페이지팩트
|
12년 전 | 1904 | |
| 6164 |
네오soft
|
12년 전 | 1856 | |
| 6163 |
|
12년 전 | 2606 | |
| 6162 | 12년 전 | 590 | ||
| 6161 |
|
12년 전 | 1689 | |
| 6160 | 12년 전 | 766 | ||
| 6159 | 12년 전 | 1777 | ||
| 6158 |
|
12년 전 | 2681 | |
| 6157 |
sa2pan
|
12년 전 | 1244 | |
| 6156 | 12년 전 | 3891 | ||
| 6155 | 12년 전 | 9962 | ||
| 6154 | 12년 전 | 1123 | ||
| 6153 | 12년 전 | 2453 | ||
| 6152 |
생각보다몸이앞서다
|
12년 전 | 2121 | |
| 6151 | 12년 전 | 2974 | ||
| 6150 |
kiplayer
|
12년 전 | 6003 | |
| 6149 |
|
12년 전 | 2644 | |
| 6148 | 12년 전 | 2968 | ||
| 6147 |
hwang007
|
12년 전 | 953 | |
| 6146 |
aqqasdf
|
12년 전 | 769 | |
| 6145 | 12년 전 | 1862 | ||
| 6144 | 12년 전 | 5877 | ||
| 6143 |
smwkd
|
12년 전 | 1461 | |
| 6142 | 12년 전 | 4699 | ||
| 6141 | 12년 전 | 929 | ||
| 6140 | 12년 전 | 4092 | ||
| 6139 | 12년 전 | 1238 | ||
| 6138 | 12년 전 | 1094 | ||
| 6137 |
SugarSkull
|
12년 전 | 1677 | |
| 6136 | 12년 전 | 1307 | ||
| 6135 |
한번잘해보자
|
12년 전 | 561 | |
| 6134 |
프리랜서개발자
|
12년 전 | 536 | |
| 6133 |
basaria
|
12년 전 | 20441 | |
| 6132 | 12년 전 | 505 | ||
| 6131 | 12년 전 | 1083 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기