今日も日中は忙しかったので、夕方に最近のスケジュールを整理し、初心者の PHP 学習の旅に再び着手しました。今日、「Chuangjia PHPTXT ゲストブック バージョン 1.0」をダウンロードして、ソース コードを見始めました。もう11時28分ですよ~。
まず、index.php から始めます: require("config.php"); include("function.php"); require と include の違いは依然として重要です。マニュアル: http://cn2.php.net/manual/zh/function.require.php。
それでは、config.phpとfunction.phpの内容を見てみましょう。
Config.php は、管理者アカウント、パスワード、メッセージの保存パスとファイル名、各ページに表示されるメッセージの数など、Web サイト全体で使用されるいくつかの変数を定義します。 Discuz にはそのようなものがあるのを覚えています。おそらくこれはすべての PHP サイトの暗黙のルールなのでしょうか。
function.phpにはユーザー名やパスワードのチェック、UBBコードの変換など一連の関数が定義されているのですが、UBBコードが何なのか分かりません~。今は無視してください。
index.phpに戻ります。後で定義された変数がいくつかありますが、それらが何に使用されるのかわかりません。とりあえず無視しましょう。落ち込んでいます。ヘッダー関数 http://cn2.php.net/manual/zh/function.header.php が続きます。 head.php というファイルが含まれており、file() を使用してファイルを読み取り、メッセージを msgd という配列に保存します。 http://cn2.php.net/manual/zh/function.file.php
今日はソースコードは理解できたかもしれないが、もう遅いのでとりあえずは書かないでおこう。後で。 Word をインストールして直接コピーする必要があります (なぜ私のマシンに Word がないのかわかりません~~)。とにかく、今日は休みです、明日は日中は時間がないので、明後日駅まで送ってから学校に戻ります。 PHP を続ける時間がいつになるか本当にわかりません。
require("head.php"); というファイルが入っていますが、headはindex.phpにしか含まれていないようです、なぜ直接書かれていないのかわかりません。先頭部分のコードは主にメッセージを検索するためのフォームを提供します。
$msgd=file($dbtable); $dbtable は config で定義されています、$dbtable="data/data.dat"; このファイルはメッセージを保存するために使用されます。ここでは file 関数を使用して、このファイルを $msgd 配列に保存します。ファイルの各行は配列要素です。
$rows=count($msgd); ここでは、count関数を使って$msgdの要素数(メッセージ数)を$rowsに格納します。
if($kw)//キーワード、
{
for ($i=0;$i<=$rows;$i++)//Traverse
{
$tmp2=explode("| Delimiter |",$msgd[$i]);//tmp2 配列にメッセージが存在しません。
if($type=="name")//名前で検索する場合
{
$msgn[$i]=$tmp2[1];//$msgn[$i]に名前を入れます
} else//名前で検索しない場合
{
$msgn[$i]=$tmp2[10];//メッセージ配列の10番目の要素をmsgn[$i]に保存
}
if(eregi($kw,$msgn[$i]))
{
$chj_nr[]=$msgd[$i];//完全なメッセージを保存するには配列 $chj_nr[] を使用します
$chj_numib++;//要件を満たすメッセージの数
}
}
if($chj_numib<1) {echo "$kw に関連する一致する結果はありません!!";exit;}
$msg=array_reverse($chj_nr);//一致します検索結果 メッセージの配列
$total=ceil($chj_numib/$pagesize); //総ページ数を計算する
}else//検索でない場合
{
$chj_numib=$rows;//すべてのメッセージ
$msg=array_reverse( $msgd);
$total=ceil($chj_numib/$pagesize);
}
//echo $total
if($pagesize*$total<$chj_numib)
{
$total++;
$total2=$total-1; // 以下が便利です
$page2=$page+1; $pp+$pagesize; // 上記と同じですnextpage=$page+2; $i<$pp2;$i++)//この for ループは、要件を満たすすべてのメッセージを出力するために使用されます (array $msg)
{
if($i<$chj_numib){ # ####
$tmp=explode ("|chjia_com|",$msg[$i]);
$tmp[10]=epost($tmp[10]); 次のステップはメッセージを出力します。この時点で、index.php は基本的に完成しました。
上記は Rookie の PHP Notes 3 の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。