PHP の長い開発期間を経て、多くのユーザーが PHP をよく知っています。ここで私の個人的な理解を述べ、皆さんと議論します。 PHP は、動的な WEB ページを作成するために使用されるサーバー側スクリプト言語です。 ASP や ColdFusion と同様に、ユーザーは PHP と HTML を組み合わせて WEB ページを作成できます。訪問者がページを参照すると、サーバーはまずページ内の PHP コマンドを処理し、次に処理結果を HTML コンテンツとともに送信します。ブラウザにアクセスします。
WEBページ上でPHPのコマンドコードを直接入力できるため、特別な開発環境は必要ありません。 WEB ページでは、すべての PHP コードは「」内に配置されます。さらに、ユーザーは などのフォームの使用を選択できます。 PHP エンジンは、ページ内の PHP 区切り文字の間にあるすべてのコードを自動的に識別して処理します。
PHP スクリプト言語の文法構造は、C 言語や Perl 言語の文法スタイルと非常に似ています。ユーザーは変数を使用する前に宣言する必要はありません。 PHP を使用して配列を作成するプロセスも非常に簡単です。 PHP には基本的なオブジェクト指向コンポーネント関数もあり、ユーザーが作成したコードを効果的に整理してカプセル化することが非常に容易になります。ここではPHPアップロードに関する問題を紹介したいと思います。
例 1. ファイル PHP アップロードを有効にする
詳細については、関数 is_uploaded_file() および move_uploaded_file() を確認してください。次の例では、フォームによって提供されるファイルのアップロードを処理します。
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><?</SPAN><SPAN class=tag-name>php</SPAN><SPAN> </SPAN></SPAN><LI class=""><SPAN>// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead </SPAN><LI class=alt><SPAN>// of $_FILES. </SPAN><LI class=""><SPAN> </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>uploaddir</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>'/var/www/uploads/'</SPAN><SPAN>; </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute>uploadfile</SPAN><SPAN> = $uploaddir . basename($_FILES['userfile']['name']); </SPAN></SPAN><LI class=alt><SPAN> </SPAN><LI class=""><SPAN>echo '</SPAN><SPAN class=tag><</SPAN><SPAN class=tag-name>pre</SPAN><SPAN class=tag>></span><span>'; </span></span></li> <li class="alt"><span>if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { </span></li> <li class=""><span> echo "File is valid, and was successfully uploaded.n"; </span></li> <li class="alt"><span>} else { </span></li> <li class=""><span> echo "Possible file upload attack!n"; </span></li> <li class="alt"><span>} </span></li> <li class=""><span> </span></li> <li class="alt"><span>echo 'Here is some more debugging info:'; </span></li> <li class=""><span>print_r($_FILES); </span></li> <li class="alt"><span> </span></li> <li class=""> <span>print "</span><span class="tag"></</SPAN><SPAN class=tag-name>pre</SPAN><SPAN class=tag>></span><span>"; </span> </li> <li class="alt"><span> </span></li> <li class=""> <span></span><span class="tag">?></span><span> </span> </li> </ol>
PHP でアップロードされたファイルを受け入れるスクリプトは、次にファイルに対してどのような操作を行うかを決定するために、論理的に必要なチェックを実装する必要があります。たとえば、$_FILES['userfile']['size'] 変数を使用して大きすぎるまたは小さすぎるファイルを除外したり、$_FILES['userfile']['type'] 変数を使用してファイル タイプと特定の規格が一致しないファイルは除外されますが、この値はクライアントによって完全に制御され、PHP 側ではチェックされないため、これは一連のチェックの最初のステップとしてのみ考慮してください。 PHP 4.2.0 以降では、$_FILES['userfile']['error'] 変数を使用して、さまざまなエラー コードに基づいて次のステップを計画することもできます。いずれの場合も、ファイルを一時ディレクトリから削除するか、別の場所に移動してください。
フォームでアップロードされたファイルが選択されていない場合、PHP 変数 $_FILES['userfile']['size'] の値は 0 になり、$_FILES['userfile']['tmp_name'] は空になります。ファイルが移動または名前変更されていない場合、そのファイルはフォーム要求の最後に削除されます。