PHP論壇技術核心 — 分級儲存和顯示和回

來源:互聯網
上載者:User

簡介:這是PHP論壇技術核心 -- 分級儲存和顯示和回的詳細頁面,介紹了和php,有關的知識、技巧、經驗,和一些php源碼等。

class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=324401' scrolling='no'>

1 以檔案名稱來儲存發言和回複

// max.txt儲存著最大的發言標題總數(不包括回複)

論壇分級檔案...
第一個發言的檔案名稱叫 1.txt
第一個發言的回複1 叫 1_1.txt
第一個發言的回複2 叫 1_2.txt
第一個發言的回複2的回複1叫 1_2_1.txt
第二個發言的檔案名稱叫 2.txt

2 顯示方法
<?
//得到標題文章總數(不包括回複的文章)
$max = file("max.txt");

//分頁顯示
if($page == "")
{
$page = 1;
}

//每頁顯示的標題數目
$numperpage = 20;

//總標題數
$total = $max[0];

//總頁數
$totalpage = round( ($total+$numperpage/2)/$numperpage );

//分級顯示的函數
function show($filename)
{

//$id為論壇的分類名稱
global $id;

//讀入要顯示的發言
$filenamemsg = file($filename);

//分割
$msg = split("\|\|bbs\|\|",$filenamemsg[0],99);

//顯示當前的發言標題
print("<li type=square><a href=# onClick=\"window.open('detail.php?f

ilename=$filename&&id=$id','detail','menubar=0,toolbar=0,location=no,s

tatus=no,directories=0,scrollbars=yes,resizable=no,left=10,top=10,widt

h=550,height=400')\">".$msg[2]." ".$msg[0]." ".

$msg[4]."\r\n");

/尋找是否有回複
for($i=1;$i<999999;$i++)
{

//尋找是否有 檔案名稱_數字 的回複檔案
$tmp = $filename."_".$i;
if( file_exists($tmp) )
{

//如果有,則調用遞迴顯示這個回複以及回複的回複
print("
\r\n");
show($tmp);
print("
\r\n");
}
else
{
//否則中斷迴圈
break;
}
}

//分級顯示結束
print("");
}

//分頁顯示開始
$begin = $total-($page-1)*$numperpage;

//分頁顯示結束
$end = $begin - $numperpage;

//分級顯示開始
print("
");

//迴圈顯示標題以及各級回複
for($i=$begin;($i>0) && ($i>$end);$i--)
{
show("$i");
}

//分級顯示結束
print("
");

3 發表新文章的方法

//處理最大發言數
$max = file("max.txt");
$maxnumber = $max[0]+1;
$handle = fopen("max.txt","w");
fputs($handle,$maxnumber);
fclose($handle);

//建立發言標題檔案
$handle = fopen("$maxnumber","w");

//對發言進行預先處理
$name = ereg_replace("<","<",$name);
$name = ereg_replace(">","&gt;",$name);
if( strlen($name) > 20 )
{
$name = substr($name,0,20);
}

$email = ereg_replace("<","<",$email);
$email = ereg_replace(">","&gt;",$email);
if( strlen($email) > 50 )
{
$email = substr($email,0,50);
}

$subject = ereg_replace("<","<",$subject);
$subject = ereg_replace(">","&gt;",$subject);
if( strlen($subject) > 100 )
{
$subject = substr($subject,0,100);
}
$body = ereg_replace("<","<",$body);
$body = ereg_replace(">","&gt;",$body);
$body = ereg_replace("\r\n","<br>",$body);
if( strlen($body) > 5000 )
{
$body = substr($body,0,5000);
}

//儲存發言
fputs($handle,"$name||bbs||$email||bbs||$subject||bbs||$body||bbs||".
date("Y年m月d日 H:i"));
fclose($handle);

4 回複的分級儲存

//方法和發言基本相同,只是增加了一些判斷
//請注意 $filename傳遞的是發言的檔案名稱
// 可是是標題檔案名稱 1.txt
// 也可能是回複檔案名稱 13_3_2.txt 第13個發言標題的第3個回複的第3個回複

//尋找已經有的最大回複

for($i=1;$i<999999;$i++)
{
if(!file_exists($filename."_".$i))
{
break;
}
}

//找到,建立新的回複檔案
//後面的與發言相同

fclose(fopen($filename."_".$i,"w"));
unlink("reply.tmp");

$handle = fopen($filename."_".$i,"w");
$name = ereg_replace("<","<",$name);
$name = ereg_replace(">","&gt;",$name);
if( strlen($name) > 20 )
{
$name = substr($name,0,20);
}

$email = ereg_replace("<","<",$email);
$email = ereg_replace(">","&gt;",$email);
if( strlen($email) > 50 )
{
$email = substr($email,0,50);
}

$subject = ereg_replace("<","<",$subject);
$subject = ereg_replace(">","&gt;",$subject);
if( strlen($subject) > 50 )
{
$subject = substr($subject,0,50);
}
$body = ereg_replace("<","<",$body);
$body = ereg_replace(">","&gt;",$body);
$body = ereg_replace("\r\n","<br>",$body);
if( strlen($body) > 500 )
{
$body = substr($body,0,500);
}
fputs($handle,"$name||bbs||$email||bbs||$subject||bbs||$body||bbs||".
date("Y年m月d日 H:i"));
fclose($handle);

如果看不懂,到我的竹葉下載我的論壇原始碼看看好了!!!

“PHP論壇技術核心 -- 分級儲存和顯示和回”的更多相關文章 》

愛J2EE關注Java邁克爾傑克遜視頻站JSON線上工具

http://biancheng.dnbcw.info/php/324401.html pageNo:15

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.