강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

주화면의 최신글을 preload로 빠르게
작성자 : 13 김영철
등록날짜 : 2009.01.13 13:11
1,183
주화면의 최신글을 preload로 빠르게...


리디폭스님이 어딘가에 제로보드들 위해 공개하신 팁입니다.
리디님의 공개승락이 있습니다.
홈피링크로 원본글을 대신함을 이해해 주세요.
-----
http://reedyfox.com/

원저자의 원본 설명을 약간 소개한 다음, g4용으로 하는요령(?)을 정리하죠.

:::::::::::

php가 돌아가는 곳이라면 어디든지 가능합니다.

방법은 비교적 간단한데, 자신의 홈페이지 메인화면에서 사용자 설정에 구애받지 않고 항상 일정한 인터페이스를 보여주는 부분, 특히 DB에 부담을 주는 부분을 찾습니다. 기곳 생각하는 섬을 예로 든다면 메인 좌측 하단 칼럼 리스트가 될 것입니다. 무려 40개의 목록을 DB에서 불러오니깐요. 또 자게와 질게 목록도 해당되겠지만 일단 칼럼 리스트만 예로 들겠습니다.

메인페이지 소스에서 칼럼 리스트에 해당하는 부분이

print_bbs("fox/bbs_contents", "리디의 생각하는 글", "fox", "1", 4, 15);
print_bbs("fox/bbs_contents", "리디의 헤드라인", "fox", "2", 4, 15);
print_bbs("fox/bbs_contents", "준희의 칼럼 I <i>hope</i>", "june", "1", 4, 15);
print_bbs("fox/bbs_contents", "준희의 헤드라인", "june", "2", 4, 15);

이겁니다.
요부분을 잘라내어 새로운 파일에 붙여넣습니다. 다음과 같이 하시면 됩니다.

<?
print_bbs("fox/bbs_contents", "리디의 생각하는 글", "fox", "1", 4, 15);
print_bbs("fox/bbs_contents", "리디의 헤드라인", "fox", "2", 4, 15);
print_bbs("fox/bbs_contents", "준희의 칼럼 I <i>hope</i>", "june", "1", 4, 15);
print_bbs("fox/bbs_contents", "준희의 헤드라인", "june", "2", 4, 15);
?>

그리고 이 파일을 preload_in.php 라는 이름으로 저장해 업로드합니다.
그다음, 위 최근게시물 소스를 잘라낸 부분은 비어 있겠죠? 거기에는 이렇게 적어줍니다.

<? include "경로.../preload_out.php"; ?>

그리고

<?
ini_set("
allow_url_fopen","1");
function readURL($url) {
$fp = fopen($url,"rb");
$file = $fp;
settype($file, boolean);
if ($file) {
while (!feof($fp)) {

$tmp = fgets($fp, 1024);
$temp .= $tmp;
}
fclose($fp);
} else {
$temp = "";
}
return $temp;
}
$url = "홈페이지URL/preload_in.php";
$data = readURL($url);

$fn = "홈페이지URL/preload_out.php";
$fd = fopen($fn, "w");
fwrite($fd, $data);
fclose($fd);

?>

이걸 prelo0ad_exec.php 라는 이름의 파일로 저장해 업로드합니다.

끝으로 write_ok.php delete_ok.php comment_ok.php del_comment_ok.php list_all.php
이 다섯 개 파일을 열어 거의 끝부분쯤에

include "경로/preload_exec.php";

exam::  include "../index/dm_body_preload_exec.php";

라고 적어줍니다. 끝부분이란, 디비연결이 끊기거나 페이지 이동이 일어나기 바로 전을 말합니다.

잠깐 주의 할 것은 preload_out.php 의 퍼미션이 707 또는 777 이어야합니다. 들어있는 디렉토리도 마찬가지고요.


원리는 이렇습니다. 글 작성/삭제, 코멘트 작성/삭제, 게시물 정리시에 preload_exec.php가 호출되면서 preload_in.php 에 설정해둔 최근게시물 소스 내용대로 preload_out.php 에 생성이 됩니다.
그러면 메인페이지에서 순수한 html 페이지인 preload_out.php 를 인클루드 하게 되는 것이지요. 누군가 글을 쓰고 지우기 전까지는 내용에 변동이 없으므로 DB를 건드릴 필요가 없게 됩니다.

Homepage :
http://reedyfox.com/

::::::

기본은 루트에 작성하는 게 좋습니다. 경로 문제가 해결되면 원하는 디렉에 넣으시구요.

1. preload_exec.php 작성
<?
ini_set("
allow_url_fopen","1");
function readURL($url) {
$fp = fopen($url,"rb");
$file = $fp;
settype($file, boolean);
if ($file) {
while (!feof($fp)) {

$tmp = fgets($fp, 1024);
$temp .= $tmp;
}
fclose($fp);
} else {
$temp = "";
}
return $temp;
}
$url = "http://www.mydomain.com/preload_in.php";
$data = readURL($url);

$fn = "../preload_out.php";
$fd = fopen($fn, "w");
fwrite($fd, $data);
fclose($fd);
ini_set("
allow_url_fopen","0");
?>

**** ini_set("
allow_url_fopen","1"); ini_set("allow_url_fopen","0"); 이거 중요함, 이거 땜시 한달을 헤맸음.... url_fopen 이 on 이든 아니든 오류는 제 컴에서는 났었음.

2. g4/bbs/write_update.php 461 goto_url 위에 include
즉,
include_once ("../../preload_exec.php");  // 파일의 경로가 루트인 제 경우.
goto_url("./board.php?bo_table=$bo_table&wr_id=$wr_id&page=$page" . $qstr);

3. preload_in.php 을 작성
전 아래와 같이 했습니다.

<?
include_once("./_common.php");
include_once("$g4[path]/lib/latest.lib.php");
$g4[title] = "";  //요건 없앨려다 무셔서 놔뒀음 ;;
?>

<!-- 메인화면 최신글 시작 -->
<table border="0" width="100%" id="noti">
<tr>
<td>
<table border="0" width="100%" id="noti">
<tr>
        <td width="600" height="34%" valign="top">
<?=latest(bluewing_bbs, noti, 5, 70);?>
        </td>
</tr>
</table>
<table border="0" width="100%" id="body1">
<tr  valign="top">
        <td width="300" height="62">
        <?=latest(bluewing_bbs, notice, 5, 70);?>
        </td>
        <td width="300" height="62">
<?=latest(bluewing_bbs, free, 5, 70);?>
</td>
</tr>
</table>
<table  border="0" width="100%" id="body_2" valign="top">
<tr>
<td width="300" height="62" rowspan="2" valign="top">
<?=latest(Ms_L1_050706, event_gallery, 3, 70);?>
</td>
        <td width="300" height="31" valign="top">
  <?=latest(Ms_L1_050706, bbsgallery, 3, 70);?>
</td>
</tr>
</table>
<table  border="0" width="100%" id="body_4" valign="top">
<tr>
<td width="300" height="62" rowspan="2" valign="top">
  <?=latest(Ms_L1_050706, wallpaper, 5, 70);?>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- 메인화면 최신글 끝 -->

4. preload_out.php 파일을 만듬. (없어도 되지만, 0바이트로 하나 만들어서 어케 되나 보는 것도 잼있음.....)

5. index.php에
include("preload_out.php"); 을 넣어 주세요.

6. 약간의 삽질 - 경로맞추기
대부분은 잘될 겁니다. 잘 안되면, 파일을
http://www.ydomain.php/preload_in.php 이렇게 익스에서 찍어 보세요.

접속이 많을 수록 좋다고 합니다.

혹시 저처럼경로가 어려운 분은 아래소스를 pathfinder.php 등으로 만들어서 해당 디렉에 넣어서 익스에서 호출하면 도움이 될 겁니다.

// 절대경로 알아내기
<?
global $PHP_SELF;

$thisfilename=basename(__FILE__);
$temp_filename=realpath(__FILE__);
if(!$temp_filename) $temp_filename=__FILE__;
$osdir=eregi_replace($thisfilename,"",$temp_filename);
unset($temp_filename);

$virdir = eregi_replace($thisfilename,"",$PHP_SELF);


echo "현재 디렉토리의 절대경로 : ".$osdir."<br>";
echo "현재 디렉토리의 상대 경로 주소 : ".$virdir."<br>";
?>
 

[출처]  웹디황용

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
3285 URL Cache를 사용하여 웹을 더욱 빠르게 13 김영철 01.13 979
3284 php5 99 단국강토 01.02 1054
3283 php 세션css 99 단국강토 12.30 1065
3282 [hatelove님의 JBBS 알고리즘 강좌 9] 13 김영철 01.14 1069
3281 reset , foreach 13 김영철 01.13 1106
3280 png 99 단국강토 12.30 1120
3279 플래시로 만든 php 함수 사전 13 김영철 01.13 1162
3278 PHP강좌】PHP URL함수 13 김영철 01.13 1166
3277 foreach 와 배열 13 김영철 01.14 1172
열람중 주화면의 최신글을 preload로 빠르게 13 김영철 01.13 1184
3275 [php] 내장함수 13 김영철 01.13 1188
3274 태그 허용 함수???? 이제 개념을 바꾸자 13 김영철 01.14 1205
3273 플래쉬 Panels 에 대한 기본개념들 99 단국강토 01.06 1212
3272 foreach 13 김영철 01.13 1213
3271 파일관련함수 13 김영철 01.13 1213
3270 [hatelove님의 JBBS 알고리즘 강좌 7] 13 김영철 01.14 1215
3269 PHP도 객체지향형 프로그램이다..!!(클래스,상속동...) 13 김영철 01.13 1215
3268 PHP입문 - 함수 13 김영철 01.13 1216
3267 플래시에서 pc cam 영상보여주기 99 단국강토 02.16 1218
3266 php기본함수 정리!! 13 김영철 01.13 1219
3265 시스템콜인 open 계열 함수와 스트림기반의 fopen 계열.. 13 김영철 01.13 1221
3264 소스를 간편하게 만들어 주는 with문 99 단국강토 02.10 1224
3263 객체 정의하기[이론,예제] 99 단국강토 01.29 1229
3262 php 파일 업, 다운로드 13 김영철 01.13 1232
3261 역인덱스 게시판 | 13 김영철 01.14 1241
3260 파일업로드 썸네일 제작 class 13 김영철 01.13 1244
3259 초보자용 이것저것 몇가지 팁 13 김영철 01.14 1246
3258 간단 날짜계산 99 단국강토 02.16 1249
3257 window 객체 M 최고의하루 12.20 1249
3256 디렉토리 폴더 모든파일 표시 [php] 13 김영철 01.14 1250
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취