웹 프로그램 제작 중에 관리자 모드에서 변경이 가능한 설정들 저장 방식을
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()로 파일을 쓰는 짧은 시간동안은 외부에서 긁어가지 못함.
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 1330 | 18년 전 | 1489 | ||
| 1329 | 18년 전 | 1719 | ||
| 1328 | 18년 전 | 1008 | ||
| 1327 | 18년 전 | 1423 | ||
| 1326 | 18년 전 | 2260 | ||
| 1325 | 18년 전 | 1144 | ||
| 1324 | 18년 전 | 1304 | ||
| 1323 | 18년 전 | 1568 | ||
| 1322 | 18년 전 | 1181 | ||
| 1321 | 18년 전 | 973 | ||
| 1320 | 18년 전 | 1197 | ||
| 1319 | 18년 전 | 1523 | ||
| 1318 | 18년 전 | 1651 | ||
| 1317 | 18년 전 | 1601 | ||
| 1316 | 18년 전 | 1212 | ||
| 1315 |
|
18년 전 | 8603 | |
| 1314 | 18년 전 | 1911 | ||
| 1313 | 18년 전 | 1495 | ||
| 1312 | 18년 전 | 1490 | ||
| 1311 | 18년 전 | 1785 | ||
| 1310 | 18년 전 | 1838 | ||
| 1309 | 18년 전 | 1228 | ||
| 1308 | 18년 전 | 986 | ||
| 1307 | 18년 전 | 2760 | ||
| 1306 | 18년 전 | 3110 | ||
| 1305 | 18년 전 | 2173 | ||
| 1304 | 18년 전 | 1557 | ||
| 1303 | 18년 전 | 1426 | ||
| 1302 | 18년 전 | 893 | ||
| 1301 | 18년 전 | 1785 | ||
| 1300 | 18년 전 | 5139 | ||
| 1299 | 18년 전 | 2861 | ||
| 1298 |
mixdesign
|
18년 전 | 2111 | |
| 1297 | 18년 전 | 3081 | ||
| 1296 | 18년 전 | 2549 | ||
| 1295 | 18년 전 | 2243 | ||
| 1294 |
onweb
|
18년 전 | 4560 | |
| 1293 |
onweb
|
18년 전 | 3491 | |
| 1292 | 18년 전 | 3456 | ||
| 1291 | 18년 전 | 4042 | ||
| 1290 | 18년 전 | 1905 | ||
| 1289 | 18년 전 | 1764 | ||
| 1288 | 18년 전 | 1732 | ||
| 1287 | 18년 전 | 1432 | ||
| 1286 | 18년 전 | 1268 | ||
| 1285 | 18년 전 | 1158 | ||
| 1284 | 18년 전 | 1160 | ||
| 1283 | 18년 전 | 1515 | ||
| 1282 | 18년 전 | 919 | ||
| 1281 | 18년 전 | 1271 | ||
| 1280 | 18년 전 | 1131 | ||
| 1279 | 18년 전 | 1148 | ||
| 1278 | 18년 전 | 3027 | ||
| 1277 | 18년 전 | 948 | ||
| 1276 | 18년 전 | 1162 | ||
| 1275 | 18년 전 | 2097 | ||
| 1274 | 18년 전 | 2227 | ||
| 1273 | 18년 전 | 1322 | ||
| 1272 | 18년 전 | 1915 | ||
| 1271 | 18년 전 | 1167 | ||
| 1270 | 18년 전 | 2498 | ||
| 1269 | 18년 전 | 6599 | ||
| 1268 |
페이지팩트
|
18년 전 | 3822 | |
| 1267 |
페이지팩트
|
18년 전 | 2231 | |
| 1266 |
|
18년 전 | 6299 | |
| 1265 | 18년 전 | 2589 | ||
| 1264 | 18년 전 | 2623 | ||
| 1263 | 18년 전 | 2124 | ||
| 1262 | 18년 전 | 2118 | ||
| 1261 |
페이지팩트
|
18년 전 | 2127 | |
| 1260 | 18년 전 | 3889 | ||
| 1259 |
|
18년 전 | 3936 | |
| 1258 |
|
18년 전 | 5043 | |
| 1257 | 18년 전 | 4144 | ||
| 1256 | 18년 전 | 2581 | ||
| 1255 | 18년 전 | 1812 | ||
| 1254 | 18년 전 | 2783 | ||
| 1253 | 18년 전 | 2717 | ||
| 1252 | 18년 전 | 2242 | ||
| 1251 | 18년 전 | 5420 | ||
| 1250 |
jbsstyle
|
18년 전 | 4764 | |
| 1249 |
|
18년 전 | 3774 | |
| 1248 | 18년 전 | 3454 | ||
| 1247 | 18년 전 | 2141 | ||
| 1246 | 18년 전 | 2136 | ||
| 1245 | 18년 전 | 3641 | ||
| 1244 |
|
18년 전 | 2285 | |
| 1243 |
|
18년 전 | 2494 | |
| 1242 | 18년 전 | 1769 | ||
| 1241 | 18년 전 | 4465 | ||
| 1240 | 18년 전 | 2154 | ||
| 1239 | 18년 전 | 2305 | ||
| 1238 | 18년 전 | 4043 | ||
| 1237 |
hwatta
|
18년 전 | 3897 | |
| 1236 | 18년 전 | 2120 | ||
| 1235 | 18년 전 | 2771 | ||
| 1234 | 18년 전 | 5148 | ||
| 1233 | 18년 전 | 2415 | ||
| 1232 |
|
18년 전 | 2953 | |
| 1231 | 18년 전 | 8504 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기