シンプルなインタラクティブ 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でフォームデータを取得するのはとても簡単です。フォームが送信されると、フォームに含まれる各要素に対応する値が割り当てられ、一般変数への参照のように使用できます。
if ( ! empty($searchstr) )
{
// 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 "-
$fname< /A> : $fline 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
true
http://www.bkjia.com/PHPjc/317014.html技術記事シンプルなインタラクティブ Web サイトの構築 (2) 5.5 カウンター ホームページにカウンターを追加してみましょう。この例は何度も説明されていますが、ファイルの読み取りと書き込みの方法を説明するのに役立ちます。