PHP (ハイパーテキスト プリプロセッサ) は、HTML 埋め込み言語であり、人気のある Web プログラミング言語です。さまざまなバックエンド データベースをサポートし、現在のデータベース システムのほぼすべてをカバーします。同時に、一般的な言語で一般的な数学演算、時刻処理、ファイル システム、文字列処理、旅程処理などの機能が含まれており、さらに無料のシステムであるため、費用対効果はほぼ無限大です。
以下は、PHP を使用して Web サイトを構築する際のヒントをいくつかまとめたので、共有します。
1. 特定の機能がサポートされているかどうかを判断する
PHP ではサポートされるモジュールを柔軟に増減できるため、PHP を使用する前に、たとえばモジュールがロードされているかどうかを確認するために、常に最初にモジュールを判断することがあります。 GD グラフィックス モジュールがサポートされている場合は、次のコードを使用できます:
<ol class="dp-c"> <li class="alt"><span><span class="keyword">if</span><span>(!function_exists(</span><span class="string">"imagecreate"</span><span>)) </span></span></li> <li><span>?> </span></li> </ol>
同様に、同様のコードを使用して、MSSQL、OCI、およびその他のモジュールがサポートされているかどうかをテストできます。
2. 文字列内のURLをハイパーリンクに変更します
Webページ上でフォームを送信する際、送信された説明文に個人のホームページやその他の情報などのURLが表示される場合があります。 WORD で文書を編集するときに自動的にハイパーリンクが表示されるのと同じように、ハイパーリンクを作成すると非常に快適になります。次のコードは、その機能を非常にうまく実装しています。
<ol class="dp-c"> <li class="alt"><span><span class="vars">$string</span><span> = </span><span class="string">"连接赛迪网 站点"</span><span>; </span></span></li> <li> <span class="comment">//注:连接后需要有个空格或回车。 </span><span> </span> </li> <li class="alt"> <span class="vars">$string</span><span> = </span><span class="func">eregi_replace</span><span>(</span><span class="string">"http://([^ ,rn]*)"</span><span>,</span><span class="string">"<a href= tarrget=_blank></a>"</span><span>,</span><span class="vars">$string</span><span>); </span> </li> <li> <span class="vars">$string</span><span> = </span><span class="func">eregi_replace</span><span>(</span><span class="string">"ftp://([^ ,rn]*)"</span><span>,</span><span class="string">"<a href= target=_blank></a>"</span><span>,</span><span class="vars">$string</span><span>); </span> </li> <li class="alt"> <span>print </span><span class="vars">$string</span><span>; </span> </li> <li><span>?> </span></li> </ol><br>
3. PHP を使用して、同じ名前の複数のチェックボックスを処理します
フォーム内に同じ名前の複数のチェックボックスがある場合、php に送信されるときは、次のような文字列ではなく、値が 1 つだけ存在します。 asp カンマ区切りの値。解決策は配列を使用することです。チェック ボックスの名前の後に [] を追加します (例: Change to:)。このようにして、php は pp という配列を取得します。送信されたフォームでは、まず Count(pp) を使用して配列の数、つまり選択された項目の数を決定し、次に配列を個別に処理します
同じ原理は、ドロップでの複数選択の問題の処理にも適しています。 -ダウンボックス。
4. 静的を使用して、交互の行でテーブルのカラー表示を実現します
結果に多くの行がある場合、結果がブラウザに出力されるように PHP を使用します。表の背景色)は全て単色です。あまりカラフルだと見る人に不快感を与えてしまいます。では、表の各行の色を変えるにはどうすればよいでしょうか?以下のコードを見てください:
<ol class="dp-c"> <li class="alt"><span><span class="keyword">function</span><span> getcolor() </span></span></li> <li><span>{ </span></li> <li class="alt"> <span class="keyword">static</span><span> </span><span class="vars">$colorvalue</span><span>;</span><span class="comment">//定义一个静态变量 </span><span> </span> </li> <li> <span class="keyword">if</span><span>(</span><span class="vars">$colorvalue</span><span>==</span><span class="string">"#eeeeee"</span><span>) </span> </li> <li class="alt"> <span class="vars">$colorvalue</span><span>=</span><span class="string">"#F5F5F5"</span><span>; </span> </li> <li> <span class="keyword">else</span><span> </span><span class="vars">$colorvalue</span><span>=</span><span class="string">"#eeeeee"</span><span>; </span> </li> <li class="alt"> <span class="keyword">return</span><span>(</span><span class="vars">$colorvalue</span><span>); </span> </li> <li><span>} </span></li> <li class="alt"> <span>print(</span><span class="string">"<table border=1>n"</span><span>);</span><span class="comment">//下面输出10行 </span><span> </span> </li> <li> <span class="keyword">for</span><span>(</span><span class="vars">$i</span><span>=0;</span><span class="vars">$i</span><span><10;</span><span class="vars">$i</span><span>++) </span></li><li class="alt"><span>{ </span></li><li><span class="vars">$bcolor</span><span>=getcolor();</span><span class="comment">//换背景颜色 </span><span> </span></li><li class="alt"><span>print(</span><span class="string">"<tr bgcolor=$bcolor>n"</span><span>); </span></li><li><span>print(</span><span class="string">"<td>$i</td>n"</span><span>); </span></li><li class="alt"><span>print(</span><span class="string">"</tr>"</span><span>); </span></li><li><span>} </span></li><li class="alt"><span>print(</span><span class="string">"</table>n"</span><span>); </span></li><li><span>?> </span> </li> </ol>
説明:
このプログラムでは静的変数 static $colorvalue が定義されています。つまり、関数呼び出しが終了した後も、この変数 $colorvalue はその値を保持し、消えません。 getcolor() 関数が再度呼び出されるとき、変数 $colorvalue の値は、最後の関数呼び出しの終了時の $colorvalue の値になります。
5. php での繰り返し参照を避ける方法
ご存知のとおり、C 言語では #define を使用して MACRO 名を定義し、その MACRO 名が参照されているかどうかを確認することでヘッダー ファイルが参照されているかどうかを判断できます。定義されています。 PHP にも同じ問題があります。たとえば、A が B を参照し、C が参照し、B が C を参照します。何も対策を講じないと、C が 2 回引用されてしまいます。これにより、奇妙な問題が発生する可能性があります。解決策: グローバル変数を定義し、その変数が定義されているかどうかを確認することでこの問題を解決します。この方法は C と同様で非常に簡単です。 このグローバル変数には ["user_packages"] ["headfilename"] の命名規則を使用することをお勧めします。
<ol class="dp-c"> <li class="alt"><span><span class="keyword">if</span><span> (!</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$GLOBALS</span><span>[</span><span class="string">"FOODTAILS"</span><span>][</span><span class="string">"GLOBALDEFINE"</span><span>])) </span><span class="keyword">return</span><span>; </span></span></li> <li> <span class="vars">$GLOBALS</span><span>[</span><span class="string">"FOODTAILS"</span><span>][</span><span class="string">"GLOBALDEFINE"</span><span>] = true; </span> </li> <li class="alt"> <span class="keyword">class</span><span> FOODTAILS ; </span> </li> <li><span>?> </span></li> </ol>
さらに、繰り返しの参照を避けるために、メインプログラムで require_once "headfiles.php"; を使用するようにしてください。
6. フォームの繰り返し送信を避ける方法
Web サイトを構築しているとき、スパム記事がないか心配することがあります。ネットワーク状況などの理由により、ユーザーは送信が成功したかどうかがわからず、同じフォームを再度送信してしまい、何度もフォームを送信してしまう場合があります。同じフォームの重複送信を避ける簡単な方法があります。 まず、フォームの送信シーケンス番号を保存するセッション変数を定義します。ここでは「$userLastAction」として定義します。次に、フォームに隠し変数を追加し、値を $userLastAction+1 に設定します。 > 最後に、送信を処理する前にフォームが送信されたかどうかを確認します。
<ol class="dp-c"> <li class="alt"><span><span class="keyword">if</span><span>(</span><span class="vars">$lastAction</span><span>></span><span class="vars">$userLastAction</span><span>){ </span></span></li> <li> <span class="vars">$userLastAction</span><span>++; </span><span class="comment">// 序列号加1 </span><span> </span> </li> <li class="alt"> <span class="comment">// 处理表单数据 </span><span> </span> </li> <li><span>} </span></li> <li class="alt"><span>?> </span></li> </ol>
このテクニックの主な原則は、ユーザーが復帰後に再送信できないことです。つまり、復帰後の変更と再送信は許可されていませんが、Ctrl-C/Ctrl-V の灌漑方法は避けられません。
7. ダウンロードされたファイルのダウンロード数をバックフィルする
ソフトウェアをダウンロードするとき、私たちはこのソフトウェアのダウンロード統計をよく見ますが、これらの統計はウェブマスターがソフトウェアの人気を分析するのに便利です。実装原理は、ソフトウェアの固有の識別子とダウンロード番号をバックエンド データベースに保存し、ユーザーがソフトウェアをダウンロードすると、まず対応するソフトウェアのダウンロード数が更新され、ダウンロード数が増加します。 1 によって、ダウンロード ファイルに対してダウンロードが正式に開始されます。以下の実装コードをご覧ください:
a. まず、データ テーブル ダウンロードを作成します (バックエンドに MySql を使用)
ダウンロード テーブルには次の 2 つのフィールドが含まれます:
id ダウンロードされたファイルの一意の識別子
downnumダウンロード数、デフォルト値は 0
b で、実装
はデータベースから取り出されたものと想定されます。説明ファイル名は Wubi font、ダウンロード ファイル名は wbzx.zip です。 ID 値は 2 です
処理後に生成されるハイパーリンク コードは次のとおりです:
Wubi フォント
下面的代码download.php处理下载次数累计及根据传递的文件名定位下载文件。
<ol class="dp-c"> <li class="alt"><span><span class="comment">//连接Mysql数据库代码略 </span><span> </span></span></li> <li> <span class="vars">$res</span><span>=mysql_query(</span><span class="string">"update download set downnum=(downnum+1) where id="</span><span class="vars">$id</span><span class="string">""</span><span> ,</span><span class="vars">$db</span><span>); </span> </li> <li class="alt"> <span>header(</span><span class="string">"location:$filename"</span><span>); </span> </li> <li><span>?> </span></li> </ol>