3 PHP の練習 PHP の多くの機能は、他のソフトウェアやツールに関連しています。これまでに学んだ PHP の知識を使用して、単純なインタラクティブな Web サイトの構築を試みることができます。このプロセスを通じて私たちは多くのことを学ぶことができます。それでは、典型的な個人 Web サイトの構築に焦点を当てましょう。 3.1 サイトを計画する 通常、個人サイトには、ウェルカム ページ、ゲストブック ページ、ブックマーク リンク ページ、カウンター、連絡先情報、さらには写真コレクションやいくつかの音楽ファイルなどが含まれます。タイトルページ、連絡先情報ページ、履歴書ページから始めましょう。標準およびユニバーサルのページヘッダーとフッターも必要です。 タイトルページ --front.html ここに非常に単純な HTML ファイルがあります:
My Personal Homepage - -ようこそ 私の個人ホームページ ようこそ 私の質素な住居へようこそ、ここにはまだ何もありません。
でも、すぐにもっと増えることを願っています。
連絡先情報ページ--count.html
同様に、別の単純なページがあります:
私の個人ホームページ - 連絡先 私のプロフィール 連絡先情報 1-800-PHP-INFOまでご連絡ください
Copyright ? 1999 同じヘッダーとフッター。作業負荷が小さい場合は、上記のように各ページに同じ情報を書き込むのは問題ありませんが、100 ページを超えるページがあり、すべてのページのヘッダーまたは下部を変更する必要がある場合、どれだけの労力を費やさなければならないかを想像してみてください。ページごとに手動で変更するのは、何と退屈で退屈な作業でしょう。したがって、これらのページの PHP ヘッダー ファイルと下部ファイルを作成し、すべての HTML ページでそれらを参照するだけで済みます。これらのインクルード ファイルは、include というサブディレクトリに配置します。以下では、これらのサイトに共通するコンテンツをファイルに書き込みます。 サイト全体の共通変数設定: common.inc // サイト全体の共通変数 $MyEmail = "phptalk@tnc.org"; $MyEmailLink = "$MyEmail "; $MyName = "PHP Talk"; $MySiteName = $MyName." のホームページ"; ?> ユニバーサル ページ ヘッダー: header.inc // ユニバーサル ページ ヘッダーを定義します ?>
< echo "$MySiteName - $title"; ?> echo "$title" ?> HR> 総合ページ下部 :footer.inc // 一般ページ下部 ?> 著作権 ? by > 、1999
BODY> 新しいページfront.php3: include("include/common.inc"); $title = "ようこそ"; include ("include/header.inc"); ?> 私の質素な住居へようこそ、ここにはまだ何もありません。
でも、すぐにもっと増えることを願っています。
include ("include/footer.inc"); include/common.inc"); $title = "連絡先情報"; include("include/ header.inc"); ?> 1-800 -PHP-INFO までお電話ください
include("include/ footer.inc"); ?> これで、この配置の利点が推測できるようになります。ページのヘッダーまたは下部を変更したい場合は、対応するファイルを変更するだけで済みます。電子メール アドレスや名前を変更したい場合は、common.inc ファイルを変更するだけです。任意のファイル名またはファイル拡張子のファイルをファイルに含めることができ、他のサイトのファイルを含めることもできることにも注目してください。 3.3 カウンター ホームページにカウンターを追加しましょう。この例は何度も説明されていますが、ファイルの読み取りと書き込み、および独自の関数の作成方法を示すのに依然として役立ちます。 counter.inc には次のコードが含まれています: /* 単純なカウンター */ function get_hitcount($counter_file) { /* カウンターをゼロにリセットします これカウンタがまだ使用されていない場合、初期値は 1 になります もちろん、人々を騙すために初期値を 20000 に設定することもできます */ $count=0; //ファイルカウンターが既に存在する場合は、内容を取得してください if ( file_exists($counter_file) ) { $fp=fopen($counter_file,"r"); // 上位 20 件だけを取りました。あなたのサイトが大きすぎないことを願っています Popular $count=0+fgets($fp,20); // 関数 fgets() は文字列を返すため、0 を追加することで自動的に整数に変換できます fclose($fp ; "); fputs($fp,$count); fclose($fp); # カウント値を返す return ($count); } ?> ; 次に、このカウンターを表示するように前面の .php3 ファイルを変更します: include("include/counter.inc"); // ファイル counter.txt にカウンター値を入れます。それを読み出して出力します printf ( "gt;%06d gt; gt; n", get_hitcount("counter.txt")); include("include/footer.inc "); ?> 新しいfront.php3 3.4 フィードバック フォーム 視聴者が記入して電子メールを送信できるように、別のフィードバック フォームを追加しましょう。 -あなたにメールします。たとえば、非常に単純なメソッドを使用して実装します。1 つはビューアに入力フォームを提供するページ、もう 1 つはフォーム データを取得して処理し、メールで送信するページです。 PHP でフォーム データを取得するのは非常に簡単です。フォームが送信されると、フォームに含まれる各要素に対応する値が割り当てられ、一般変数への参照のように使用できます。 include("include/footer.inc"); ?> プロセスフォーム: sendfdbk.php3 include("include/common.inc"); $title = "フィードバック"; include("include/header.inc "); if ( $name == "" ) { // 今では匿名のメッセージが嫌いです! echo "え?どうして匿名なんですか?"; } elseif ($name == "あなたの名前") { // この視聴者は本当に名前を明かされたくないのです! echo「こんにちは?」丁寧にありがとうございます echo「 こんにちは、$name。 ご意見ありがとうございます。大変感謝しております。 ありがとうございます」 $MyName $MyEmailLink "; // 最後にメールを送信します mail($MyEmail, "Feedback."," Name : $name メール : $email コメント : $comment "); } include("include/footer.inc"); ?> 3.5 サイト内での簡単な検索エンジン PHPは外部プログラムを呼び出すことができます。 Unix 環境では、grep プログラムを使用して単純な検索エンジンを実装できます。もう少し複雑にすることもできます。ページを使用して、ユーザーが検索文字列を入力してクエリ結果を出力するためのフォームを出力します。 include("include/common.inc"); $title = "検索"; include("include/header.inc"); ?>
" METHOD="POST"> " SIZE="20" MAXLENGTH="30"> if (! empty($searchstr)) { // empty() はクエリ文字列が空かどうかを確認するために使用されます //空でない場合、 grep を呼び出してクエリ echo " n"; // grep を呼び出して、大文字と小文字を区別しないモードですべてのファイルをクエリします $cmdstr = "grep -i $searchstr *"; $fp = Popen( $cmdstr, "r" ); // コマンドを実行し、パイプラインを出力します $myresult = array(); // クエリ結果を保存します while( $buffer = fgetss ($fp, 4096)) { // grep は次の形式を返します: ファイル名: 一致する文字列の行数 // そこで、関数 Split() を使用してデータを分離して処理します list($fname, $fline) = split(":",$buffer, 2); // 最初の一致の結果のみを出力します if ( !define($myresult[$fname])) $myresult[$fname] = $fline; } // 結果を配列に保存し、以下で処理して出力できます if ( count($myresult) ) { echo "n"; while(list($fname ,$fline) = each($myresult)) echo "$fname : $fline < ;/LI>n"; echo " n"; } else { // クエリ結果がない場合 echo "Sorry. $searchstr は結果を返しませんでした。 n"; } pclose($fp); } ?> include("include/ footer.inc"); ?> ; 注: PHP_SELF は PHP の組み込み変数です。現在のファイル名が含まれます。 fgets() は、最大 4096 (指定された) 文字長までファイルを 1 行ずつ読み取ります。 fgetss() は、出力 HTML タグを解析することを除いて fgets() に似ています。 split() のパラメーターは 2 です。これは、出力を 2 つの部分に分割するだけでよいためです。 「:」も省略する必要があります。 each() は配列操作関数であり、配列全体をより簡単に走査するために使用されます。 popen()、pclose() は、パイプライン処理が追加されていることを除いて、fopen()、fclose() と非常によく似た関数を持ちます。 上記のコードは検索エンジンを実装する良い方法ではないことに注意してください。これは、PHP をより良く学ぶための単なる例です。理想的には、キーワードのデータベースを構築してから検索する必要があります。
http://www.bkjia.com/PHPjc/314675.html www.bkjia.com true http://www.bkjia.com/PHPjc/314675.html 技術記事 3PHP の実践 PHP の多くの機能は、他のソフトウェアまたはツールに関連しています。これまでに学んだ PHP の知識を使用して、単純なインタラクティブな Web サイトの構築を試みることができます。ぜひご利用ください...