ホームページ  >  記事  >  php教程  >  例を使って PHP プログラミングの基礎を学びます

例を使って PHP プログラミングの基礎を学びます

WBOY
WBOYオリジナル
2016-06-21 09:02:10792ブラウズ

3 PHP練習

PHP
多機能は他のソフトウェアまたはツールに関連しています。 PHP についてこれまでに学んだことを使用して、単純なインタラクティブな Web サイトの構築を試みることができます。このプロセスを通じて私たちは多くのことを学ぶことができます。それでは、典型的な個人 Web サイトの構築に焦点を当てましょう。

3.1
サイトを計画する

通常、個人サイトにはウェルカム ページが含まれます。ゲストブック ページ、ブックマーク リンク ページ、カウンター、連絡先情報、さらにはフォト アルバムやいくつかの音楽ファイルなど。タイトルページ、連絡先情報ページ、履歴書ページから始めましょう。標準のユニバーサル ページ ヘッダーとフッターも必要です。


タイトルページ --front.html


はこちら非常に単純な html ファイルがあります:



🎜> <br><br><br><br>私の個人ホームページ</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">--</span><span lang="EN-US">ようこそ</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"> </span><span lang="EN-US"> < /TITLE><br/><br/></HEAD><br/><br/><br/>私の個人ホームページ<br/><br/> <br/><br/></H1> <br></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></span>ようこそ<span lang="EN-US"><br> <br><br></H2> <br><br><br></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></span><span lang="EN-US">ここは今は何もありませんが、まだ。 <br><br> <br><br></P> <br><br><P> <br><br></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">でも、すぐにもっと増えることを願っています。 </span><span lang="EN-US"> <br><br></P> <br><br><P ALIGN="CENTER"> ;SMALL> <br><br>著作権 </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">1999 </span><span lang="EN-US"><br> 🎜><br><br></HTML><br><br><br><br>連絡先情報ページ<br>--count.html <br><br></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"></span>同様に、別の単純なページがあります: <span lang="EN-US"><br> <br><br><HTML> 🎜><br><br><br><br><br></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">私の個人ホームページ</span><span lang="EN-US">--</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">連絡先</span><span lang="EN-US"> <br><br>

< /HEAD>




私の個人ホームページ




連絡先







1-800-PHP-INFO

を渡すことができます連絡してください



<🎜; >

著作権

1999

>



3.2 HTML
🎜>
PHP




上からわかるように、すべてのページに同じヘッダーとフッターがあります。ワークロードが小さい場合は、上記のように各ページに同じ情報を書き込むのは問題ありませんが、

100

の複数のページがあり、それらのヘッダーをすべて変更する必要がある場合、またはどれくらいのエネルギーが必要になるかを想像してください。あなたは一番下で消費しなければなりませんか?ページごとに手動で変更するのは、なんと退屈で退屈な作業でしょう。したがって、これらのページの
PHP ヘッダー ファイルとフッター ファイルを作成し、各

HTML
ページでそれらを参照するだけで済みます。それ。これらの include ファイルを include というサブディレクトリに配置します。以下では、これらのサイトに共通するコンテンツをファイルに書き込みます。 サイト全体の共通変数設定: common.inc // サイト全体のユニバーサル変数


$MyEmail = "phptalk@tnc.org";
$MyEmailLink = " $MyEmail"; $MyName = "PHP Talk";

$MySiteName = $MyName." のホーム ページ" ;

?>

一般的なページ ヘッダー:

header.inc


//

ユニバーサル ページ ヘッダーを定義します



?>
< ; HEAD>


>





?>




一般ページ下部:
footer.inc ;?

//

一般ページの下部
?>







著作権 ? "$MyName MyEmailLink) "; ?>

、1999





< /BODY> ;






新しいページ

front.php3
<include("include/common.inc");
$title = "ようこそ"; " include/header.inc");





まだですがここには今のところ何もありません。






でも、すぐにもっと増えることを願っています。





include("include/footer.inc"); >

新しい

cont.php3

:




include("include/common.inc");
$title = "連絡先情報" include("include/header.inc"); ?>



連絡してください



;

<

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 だけを取得しました。あなたのサイトがあまり人気にならないことを願っています $count=0+fgets($fp,20)

//

function
fgets() は文字列を返します。これは、0 < を追加することで自動的に整数に変換できます。 🎜> fclose($fp);
//

ファイル操作が完了しました
}
//

カウント値を 1 回増やします
$count++;
//

新しいカウント値をファイルに書き込みます
$fp=fopen($counter_file,"w");
fputs($fp,$count); ;

#

カウント値を返す


return ($count); ?> ;


次に、このカウンターを表示するように

front.php3

ファイルを変更します。
include("include/counter.inc"); // カウンター値をファイル カウンターに入れます。 txt
、読み取りと出力



printf ("
gt;%06dgt;
gt;

n",
get_hitcount("counter.txt")); include("include/footer.inc"); ?>

新しい

front.php3


3.4

フィードバック フォーム


視聴者が記入して

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

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








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


このメソッドによれば、名前、
電子メールの 3 つの要素を含む単純なフォームを生成できます。 アドレスとメッセージ。訪問者がフォームを送信すると、フォームを処理する PHP ページ (sendfdbk.php3) がデータを読み取り、名前は Empty で、最後にメールを送信します。


フォーム:
form.php3 <

include(" include/common.inc");

$title = "フィードバック";

include("include/header.inc");

?>





SIZE="20" MAXLENGTH="30">

value="あなたのメールアドレス" NAME="email">










include("include/footer.inc") ;




フォームの処理:

sendfdbk.php3

<

include("include/common.inc"); $title = "フィードバック";

include("include/header.inc");
if ( $name == "" ) {

//

匿名のコメントは大嫌いです!



echo "え?どうして匿名なの?"

}

elseif ($name == "あなたの名前")

{
// この視聴者は本当に名前を出したくないのです!



echo "こんにちは ? あなたの名前

あなたの実際の名前に置き換えられるはずです!"; 🎜>
}

else
{ //
丁寧なお礼を出力



echo "

こんにちは、$name。




フィードバックありがとうございます。大変感謝しております。
< BR> ; ありがとうございます



$MyName

$MyEmailLink

";

//
最後にメール外出

mail($MyEmail, "フィードバック.","

名前 : $name

電子メール : $email

コメント : $comment

");

}

include("include/footer.inc");

?>


3.5
簡易オンサイト検索エンジン


PHP
Unix 環境では、プログラム grep を使用して、少し複雑にすることができます。このフォームでは、ユーザーが検索文字列を入力してクエリ結果を出力できます。include("include/header.inc) ");
?>



POST">

"

SIZE= "20" MAXLENGTH="30">



;/P>

<

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 "


  1. $fname : $fline
  2. n";

    echo "
n";

}

else

{

//
検索結果がない場合

echo "申し訳ありません。$searchstrで検索してください。

は結果を返しませんでした。
n";

}

pclose($fp);

}

?>

<

include("include/footer.inc")

?


注:

PHP_SELF

PHP の組み込み変数です。現在のファイル名が含まれます。 fgets()

4096 (指定された) 文字長まで、ファイルを 1 行ずつ読み取ります。 fgetss()

は、出力
fgets() に似ています。 🎜>HTML タグ。 split()
には、出力を 2 つの部分に分割するだけでよいため、
2 というパラメーターがあります。 。また、":"は省略する必要があります。 each()
は、配列全体をより簡単に走査するために使用される配列操作関数です。
popen()

pclose() および fopen() fclose() の関数は、パイプライン処理が追加されている点を除いて非常に似ています。
上記のコードは、検索エンジンを実装するのに適切な方法ではないことに注意してください。これは、
PHP をより良く学ぶための単なる例です。理想的には、キーワードのデータベースを構築してから検索する必要があります。