ホームページ  >  記事  >  バックエンド開発  >  3. example_PHP チュートリアルから始める

3. example_PHP チュートリアルから始める

WBOY
WBOYオリジナル
2016-07-21 16:08:58818ブラウズ


3 PHP の練習


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



3.1 サイトを計画する

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



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





ここに非常に単純な HTML ファイルがあります:





<br><br>My Personal Homepage - -ようこそ<br><br>







私の個人ホームページ





ようこそ








私の質素な住居へようこそ、ここにはまだ何もありません。





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


















連絡先情報ページ--count.html



同様に、別の単純なページがあります:





<br><br>私の個人ホームページ - 連絡先<br><br>







私のプロフィール




連絡先情報








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


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

?>





<br><br>< echo "$MySiteName - $title"; ?><br><br></H1><br><br><H2><br><br><? echo "$title" ?> HR><br><br><br><br>総合ページ下部 :footer.inc<br><br><?<br><br>// 一般ページ下部 <br><br>?><br><br><HR><br><br><P ALIGN="CENTER"> <br><br><SMALL><br>著作権 ? by <br><br><?><br><br>、1999<br></SMALL> <br></P><br><br></ BODY><br><br></HTML><br><br><br><br>新しいページfront.php3: <br><br><?<br><br>include("include/common.inc");<br><br> $title = "ようこそ";<br><br>include ("include/header.inc");<br><br>?><br><br><P><br><br>私の質素な住居へようこそ、ここにはまだ何もありません。 <br><br></P><br><br><P><br><br>でも、すぐにもっと増えることを願っています。 <br><br></P><br><br><?<br><br>include ("include/footer.inc"); include/common.inc");<br><br>$title = "連絡先情報";<br><br>include("include/ header.inc");<br><br>?><br><br><P><br><br>1-800 -PHP-INFO までお電話ください<br><br></P><br><br><?<br><br>include("include/ footer.inc");<br><br>?><br><br><br><br>これで、この配置の利点が推測できるようになります。ページのヘッダーまたは下部を変更したい場合は、対応するファイルを変更するだけで済みます。電子メール アドレスや名前を変更したい場合は、common.inc ファイルを変更するだけです。任意のファイル名またはファイル拡張子のファイルをファイルに含めることができ、他のサイトのファイルを含めることもできることにも注目してください。 <br><br><br><br>3.3 カウンター<br><br><br><br>ホームページにカウンターを追加しましょう。この例は何度も説明されていますが、ファイルの読み取りと書き込み、および独自の関数の作成方法を示すのに依然として役立ちます。 counter.inc には次のコードが含まれています: <br><br><?<br><br>/*<br><br><br> 単純なカウンター <br><br>*/<br><br>function get_hitcount($counter_file)<br><br>{<br><br>/* カウンターをゼロにリセットします<br><br>これカウンタがまだ使用されていない場合、初期値は 1 になります<br><br>もちろん、人々を騙すために初期値を 20000 に設定することもできます<br><br>*/<br><br>$count=0;<br><br>//ファイルカウンターが既に存在する場合は、内容を取得してください <br><br>if ( file_exists($counter_file) ) <br><br>{<br><br>$fp=fopen($counter_file,"r");<br><br>// 上位 20 件だけを取りました。あなたのサイトが大きすぎないことを願っています Popular<br><br>$count=0+fgets($fp,20);<br><br>// 関数 fgets() は文字列を返すため、0 を追加することで自動的に整数に変換できます<br> <br>fclose($fp ; ");<br><br>fputs($fp,$count);<br><br>fclose($fp);<br><br># カウント値を返す<br><br>return ($count);<br><br>}<br><br>?> ;<br><br>次に、このカウンターを表示するように前面の .php3 ファイルを変更します: <br><br><?<br><br>include("include/counter.inc");<br><br>// ファイル counter.txt にカウンター値を入れます。それを読み出して出力します <br><br>printf ( "<CENTER>gt;<B>%06d</B>gt;</CENTER>gt; <BR> <br>n",<br><br>get_hitcount("counter.txt"));<br> <br>include("include/footer.inc ");<br><br>?><br><br>新しいfront.php3<br><br><br><br>3.4 フィードバック フォーム<br><br><br><br> 視聴者が記入して電子メールを送信できるように、別のフィードバック フォームを追加しましょう。 -あなたにメールします。たとえば、非常に単純なメソッドを使用して実装します。1 つはビューアに入力フォームを提供するページ、もう 1 つはフォーム データを取得して処理し、メールで送信するページです。 <br><br><br><br>PHP でフォーム データを取得するのは非常に簡単です。フォームが送信されると、フォームに含まれる各要素に対応する値が割り当てられ、一般変数への参照のように使用できます。 <br><br><FORM name="myform" ACTION="process_form.php3" METHOD="POST"><br><br><INPUT TYPE="TEXT" NAME="mytext" VALUE="何らかの値"><br><br>< ;/FORM><br><br><br><br> process_form.php3 では、変数 $mytext に入力された値が割り当てられます - 非常に簡単です。同様に、リスト ボックス、複数選択ボックス、ラジオ ボックス、ボタンなどのフォーム要素から変数値を取得できます。必要なのは、後で参照できるように、フォーム内の各要素に名前を付けることだけです。 <br><br><br><br>この方法によれば、名前、メールアドレス、メッセージの3つの要素を含む単純なフォームを生成できます。訪問者がフォームを送信すると、フォームを処理する PHP ページ (sendfdbk.php3) がデータを読み取り、名前が空かどうかを確認し、最後にデータを電子メールで送信します。 <br><br><br><br>フォーム: form.php3<br><br><?<br><br>include("include/common.inc");<br><br>$title = "フィードバック";<br><br>include("include/header.inc");<br> <br>?><br><br><P><br><br><FORM ACTION="sendfdbk.php3" METHOD="POST"><br><br><INPUT TYPE="text" NAME="name" value="あなたの名前" <br>SIZE="20" MAXLENGTH="30"><br><br><INPUT TYPE="テキスト" MAXLENGTH="40" WIDTH="20" <br>value="あなたのメールアドレス" NAME="メールアドレス"><br><br>< ;BR><br><br><TEXTAREA ROWS="7" COLS="40" NAME="comment"><br><br>私のホームページに関するフィードバック。<br><br></TEXTAREA><br><br><BR><br><br>< ;INPUT TYPE="submit" VALUE="フィードバックを送信!"><br><br></FORM><br><br></P><br><br><?<br><br>include("include/footer.inc");<br><br> ?><br><br><br><br>プロセスフォーム: sendfdbk.php3<br><br><?<br><br>include("include/common.inc");<br><br>$title = "フィードバック";<br><br>include("include/header.inc ");<br><br>if ( $name == "" ) <br><br>{<br><br>// 今では匿名のメッセージが嫌いです! <br><br>echo "え?どうして匿名なんですか?";<br><br>} <br><br>elseif ($name == "あなたの名前") <br><br>{<br><br>// この視聴者は本当に名前を明かされたくないのです! <br><br>echo「こんにちは?」丁寧にありがとうございます<br><br>echo「<br><br>こんにちは、$name。<br><br><BR><br><br>ご意見ありがとうございます。大変感謝しております。<br><br><BR><br><br>ありがとうございます」 <br><br><BR& gt; <br><br>$MyName <BR><br><br>$MyEmailLink<br><br>";<br><br>// 最後にメールを送信します <br><br>mail($MyEmail, "Feedback.","<br><br>Name : $name <br><br>メール : $email <br><br>コメント : $comment <br><br>");<br><br>}<br><br>include("include/footer.inc");<br><br>?><br><br><br><br>3.5 サイト内での簡単な検索エンジン<br><br><br><br>PHPは外部プログラムを呼び出すことができます。 Unix 環境では、grep プログラムを使用して単純な検索エンジンを実装できます。もう少し複雑にすることもできます。ページを使用して、ユーザーが検索文字列を入力してクエリ結果を出力するためのフォームを出力します。<br><br><?<br><br>include("include/common.inc");<br><br>$title = "検索";<br><br>include("include/header.inc");<br><br>?><br><br><P> ;<br><br><FORM ACTION="<? echo "$PHP_SELF"; ?>" METHOD="POST"><br><br><INPUT TYPE="text" NAME="searchstr" value="<? <br>echo "$searchstr"; >"<br><br>SIZE="20" MAXLENGTH="30"><br><br><INPUT TYPE="submit" VALUE="検索!"><br><br></FORM> <br><br></P><br><br><?<br><br>if (! empty($searchstr)) <br><br>{<br><br>// empty() はクエリ文字列が空かどうかを確認するために使用されます<br><br>//空でない場合、 grep を呼び出してクエリ <br><br>echo "<HR>n";<br><br>// grep を呼び出して、大文字と小文字を区別しないモードですべてのファイルをクエリします <br><br>$cmdstr = "grep -i $searchstr *";<br><br>$fp = Popen( $cmdstr, "r" ); // コマンドを実行し、パイプラインを出力します <br><br>$myresult = array(); // クエリ結果を保存します <br><br>while( $buffer = fgetss ($fp, 4096)) <br> <br>{ <br><br>// grep は次の形式を返します: ファイル名: 一致する文字列の行数 <br><br>// そこで、関数 Split() を使用してデータを分離して処理します <br><br>list($fname, $fline) = split(":",$buffer, 2);<br><br>// 最初の一致の結果のみを出力します<br><br>if ( !define($myresult[$fname]))<br><br>$myresult[$fname] = $fline;<br><br>}<br><br> // 結果を配列に保存し、以下で処理して出力できます <br><br>if ( count($myresult) )<br><br>{<br><br>echo "<OL>n"; <br><br>while(list($fname ,$fline) = each($myresult))<br><br>echo "<LI><br><br><A HREF="$fname">$fname</A> : $fline < ;/LI>n";<br> <br>echo "</OL>n";<br><br>} <br><br>else <br><br>{<br><br>// クエリ結果がない場合 <br><br>echo "Sorry. $searchstr</B><br><br>は結果を返しませんでした。<BR>n";<br><br>}<br><br>pclose($fp);<br><br>}<br><br>?><br><br><?<br><br>include("include/ footer.inc");<br><br>?> ;<br><br><br><br><br><br>注: <br><br><br><br>PHP_SELF は PHP の組み込み変数です。現在のファイル名が含まれます。 <br><br>fgets() は、最大 4096 (指定された) 文字長までファイルを 1 行ずつ読み取ります。 <br><br>fgetss() は、出力 HTML タグを解析することを除いて fgets() に似ています。 <br><br>split() のパラメーターは 2 です。これは、出力を 2 つの部分に分割するだけでよいためです。 「:」も省略する必要があります。 <br><br>each() は配列操作関数であり、配列全体をより簡単に走査するために使用されます。 <br><br>popen()、pclose() は、パイプライン処理が追加されていることを除いて、fopen()、fclose() と非常によく似た関数を持ちます。 <br><br>上記のコードは検索エンジンを実装する良い方法ではないことに注意してください。これは、PHP をより良く学ぶための単なる例です。理想的には、キーワードのデータベースを構築してから検索する必要があります。 <br> </p> <p align="left"></p> <div style="display:none;"> <span id="url" itemprop="url">http://www.bkjia.com/PHPjc/314675.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">tru​​e</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/314675.html</span><span id="genre" itemprop="genre">技術記事</span><span id="description" itemprop="description"> 3PHP の実践 PHP の多くの機能は、他のソフトウェアまたはツールに関連しています。これまでに学んだ PHP の知識を使用して、単純なインタラクティブな Web サイトの構築を試みることができます。ぜひご利用ください...</span> </div> <div class="art_confoot"></div></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="美しいが安全ではない CTB_PHP チュートリアル" href="http://m.php.cn/ja/faq/312278.html">美しいが安全ではない CTB_PHP チュートリアル</a></span><span>次の記事:<a class="dBlack" title="美しいが安全ではない CTB_PHP チュートリアル" href="http://m.php.cn/ja/faq/312280.html">美しいが安全ではない CTB_PHP チュートリアル</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="http://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/2.html" title="正規表現内のすべての式記号 (概要)" class="aBlack">正規表現内のすべての式記号 (概要)</a><div class="clear"></div></li></ul></div></div><div class="nphpFoot"><div class="nphpFootBg"><ul class="nphpFootMenu"><li><a href="http://m.php.cn/ja/"><b class="icon1"></b><p>ホームページ</p></a></li><li><a href="http://m.php.cn/ja/course.html"><b class="icon2"></b><p>コース</p></a></li><li><a href="http://m.php.cn/ja/wenda.html"><b class="icon4"></b><p>に質問</p></a></li><li><a href="http://m.php.cn/ja/login"><b class="icon5"></b><p>私の</p></a></li><div class="clear"></div></ul></div></div><div class="nphpYouBox" style="display: none;"><div class="nphpYouBg"><div class="nphpYouTitle"><span onclick="$('.nphpYouBox').hide()"></span><a href="http://m.php.cn/ja/"></a><div class="clear"></div></div><ul class="nphpYouList"><li><a href="http://m.php.cn/ja/"><b class="icon1"></b><span>ホームページ</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/course.html"><b class="icon2"></b><span>コース</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/article.html"><b class="icon3"></b><span>記事</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/wenda.html"><b class="icon4"></b><span>に質問</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/dic.html"><b class="icon6"></b><span>辞書</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/course/type/99.html"><b class="icon7"></b><span>マニュアル</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/xiazai/"><b class="icon8"></b><span>ダウンロード</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/faq/zt" title="特集"><b class="icon12"></b><span>特集</span><div class="clear"></div></a></li><div class="clear"></div></ul></div></div><div class="nphpDing" style="display: none;"><div class="nphpDinglogo"><a href="http://m.php.cn/ja/"></a></div><div class="nphpNavIn1"><div class="swiper-container nphpNavSwiper1"><div class="swiper-wrapper"><div class="swiper-slide"><a href="http://m.php.cn/ja/" >ホームページ</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/article.html" class="hover">記事</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/wenda.html" >に質問</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/course.html" >コース</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/faq/zt" >特集</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/xiazai" >ダウンロード</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/game" >ゲーム</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/dic.html" >辞書</a></div><div class="clear"></div></div></div><div class="langadivs" ><a href="javascript:;" class="bg4 bglanguage"></a><div class="langadiv" ><a onclick="javascript:setlang('zh-cn');" class="language course-right-orders chooselan " href="javascript:;"><span>简体中文</span><span>(ZH-CN)</span></a><a onclick="javascript:setlang('en');" class="language course-right-orders chooselan " href="javascript:;"><span>English</span><span>(EN)</span></a><a onclick="javascript:setlang('zh-tw');" class="language course-right-orders chooselan " href="javascript:;"><span>繁体中文</span><span>(ZH-TW)</span></a><a onclick="javascript:;" class="language course-right-orders chooselan chooselanguage" href="javascript:;"><span>日本語</span><span>(JA)</span></a><a onclick="javascript:setlang('ko');" class="language course-right-orders chooselan " href="javascript:;"><span>한국어</span><span>(KO)</span></a><a onclick="javascript:setlang('ms');" class="language course-right-orders chooselan " href="javascript:;"><span>Melayu</span><span>(MS)</span></a><a onclick="javascript:setlang('fr');" class="language course-right-orders chooselan " href="javascript:;"><span>Français</span><span>(FR)</span></a><a onclick="javascript:setlang('de');" class="language course-right-orders chooselan " href="javascript:;"><span>Deutsch</span><span>(DE)</span></a></div></div><script> var swiper = new Swiper('.nphpNavSwiper1', { slidesPerView : 'auto', observer: true,//修改swiper自己或子元素时,自动初始化swiper observeParents: true,//修改swiper的父元素时,自动初始化swiper }); </script></div></div><!--顶部导航 end--><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>