PHP 初心者向け (6)_PHP チュートリアル

WBOY
リリース: 2016-07-21 16:00:44
オリジナル
876 人が閲覧しました

シンプルなインタラクティブ Web サイトの構築 (2)

5.5 Counter

ホームページにカウンターを追加してみましょう。この例は何度も説明されていますが、ファイルの読み取りと書き込み、および独自の関数の作成方法を示すのに依然として役立ちます。 counter.inc には次のコードが含まれています:

/*
|| 単純なカウンター
*/
function get_hitcount($counter_file)
{
/* カウンターがゼロに戻っていない場合初期値は 1 になります
もちろん、人々を騙すために初期値を 20000 に設定することもできます
*/
$count=0;
// カウンターを保存するファイルが既に存在する場合は、その内容を読み取ります
if ( file_exists($ counter_file) )
{
$fp=fopen($counter_file,"r");
// 上位 20 件だけを取り上げました。あなたのサイトがあまり人気にならないことを願っています
$count=0+fgets ($fp, 20);
// 関数 fgets() は文字列を返すので、0 を追加することで自動的に整数に変換できます
fclose($fp);
// ファイル操作が完了します
}
/ / カウントを 1 回増やします Value
$count++;
$fp=fopen($counter_file,"w");
fputs($fp,$count); );
# Return Count value
return ($count);
?>

次に、このカウンタを表示するように、front.php3 ファイルを変更します。 ;
// カウント値をファイル counter.txt に配置し、読み取って出力します
printf ("

gt;%06dgt;
n" ,
get_hitcount("counter.txt"));
include("include/footer.inc");
新しいfront.php3をチェックしてください

5.6フィードバックフォーム

次のフィードバックフォームを追加しましょう。視聴者に記入して電子メールで送信してもらいます。たとえば、非常に単純なメソッドを使用して実装します。1 つはビューアに入力フォームを提供するページ、もう 1 つはフォーム データを取得して処理し、メールで送信するページです。

PHPでフォームデータを取得するのはとても簡単です。フォームが送信されると、フォームに含まれる各要素に対応する値が割り当てられ、一般変数への参照のように使用できます。

;

process_form.php3 では、変数 $mytext に入力された値が割り当てられます - 非常に簡単です。同様に、リストボックス、チェックボックス、ラジオボックス、ボタンなどのフォーム要素から変数値を取得できます。必要なのは、後で参照できるように、フォーム内の各要素に名前を付けることだけです。

この方法に基づいて、名前、メールアドレス、メッセージの3つの要素を含む単純なフォームを生成できます。訪問者がフォームを送信すると、フォームを処理する PHP ページ (sendfdbk.php3) がデータを読み取り、名前が空かどうかを確認し、最後にデータを電子メールで送信します。

フォーム: form.php3
$title = "フィードバック";
< P>




"include/common.inc");
?> ");
$title = "フィードバック";
include("include/header.inc");
if ( $name == "" )
/ / 今では匿名コメントは嫌いです!
echo "え?どうして匿名なの?";
}
elseif ($name == "あなたの名前")
{
// この視聴者は本当に名前を明かしたくないのです!
echo "こんにちは ? あなたの名前
実際の名前に置き換えられるはずです!";
}
else
{
// 丁寧なありがとうを出力します
echo "
こんにちは、$name


フィードバックありがとうございます
// 最後にメールを送信してください
mail($MyEmail, "Feedback.","
名前 : $name
電子メール : $email
コメント : $comment
");
}
include("include/footer.inc ");
?>

注: テスト中にプログラムが正しく動作しない場合は、PHP 設定ファイル (php3 PHP3 の場合は .ini、PHP4 の場合は php.in) が正しく設定されています。このプログラムでは、PHP 設定ファイルに次の設定が必要です:

まず、メモ帳を使用して php3.ini または php.ini ファイルを開き、[メール機能] が設定されているかどうかを確認します。 デフォルトの状況は次のとおりです。 SMTP = localhost
sendmail_from = me@localhost.com
SMTP の SMTP サーバーを設定します。例として 21cn SMTP サーバーを使用します。次に、sendmail_from に E- を入力します。たとえば、MAIL アドレスです。次のように変更できます:
SMTP = smtp.21cn.com
sendmail_from = pert@21cn.com
変更後は、Apache、IIS、または PWS サービスを忘れずに再起動してください


5.7 シンプルなオンサイト検索エンジン

PHPは外部プログラムを呼び出すことができます。 Unix 環境では、grep プログラムを使用して単純な検索エンジンを実装できます。もう少し複雑にすることもできます。ページを使用して、ユーザーが検索文字列を入力してクエリ結果を出力するためのフォームを出力します。

$title = "検索"

ACTION="" METHOD="POST">
"
SIZE="20" MAXLENGTH="30">



{
// empty() はクエリ文字列が空かどうかをチェックするために使用されます
// そうでない場合は grep クエリを呼び出します
echo "
n"
// call 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 "

  1. $fname< /A> : $fline
  2. n";
    echo "
n";
}
else
{
// クエリ結果がない場合
echo "
は結果を返しませんでした。
n";
}
pclose($fp);
}
?>


注:

PHP_SELF は組み込み変数ですPHPで。現在のファイル名が含まれます。
fgets() は、最大 4096 (指定された) 文字の長さでファイルを 1 行ずつ読み取ります。
fgetss() は、出力 HTML タグを解析することを除いて、fgets() に似ています。
split() のパラメータは 2 です。これは、出力を 2 つの部分に分割するだけでよいためです。 「:」も省略する必要があります。
each() は配列操作関数であり、配列全体をより簡単に走査するために使用されます。
popen()、pclose() は、パイプライン処理が追加されていることを除いて、fopen()、fclose() と非常によく似た機能を持っています。
上記のコードは検索エンジンを実装するための良い方法ではないことに注意してください。これは、PHP をより良く学習するための単なる例です。理想的には、キーワードのデータベースを構築してから検索する必要があります。




http://www.bkjia.com/PHPjc/317014.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/317014.html技術記事シンプルなインタラクティブ Web サイトの構築 (2) 5.5 カウンター ホームページにカウンターを追加してみましょう。この例は何度も説明されていますが、ファイルの読み取りと書き込みの方法を説明するのに役立ちます。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート