ホームページ バックエンド開発 PHPチュートリアル PHPファイルシステムの詳しい説明(推奨)

PHPファイルシステムの詳しい説明(推奨)

Jul 25, 2016 am 08:54 AM

  1. $filename="./files.text";
  2. $fp=fopen($finename,"rb")
  3. $encho fread($fp,100);
コードをコピー

readfile()、file()、および file_get_contents() 関数。 readfile()、file()、および file_get_contents() 関数。 int readfile(string filename[,bool use_include_path,resource context]);//ファイルを読み取り、成功した場合は読み取ったバイト数を返し、それ以外の場合は false を返します。ファイル名 ファイル名。 use_include_path パラメーターは、include_path でのファイルの検索をサポートするかどうかを制御します。true はサポートされることを意味します。 readfile 関数を使用してファイルを開いたり閉じたりする必要はありません。 Array file(string filename [,bool use_include_path[,resource context]]);//ファイル全体の内容を配列に読み取ります。成功した場合は配列が返され、それ以外の場合は false が返されます。 string file_get_contents(string filename[,bool use_include_path[,resource context[,int offset[,int maxlen]]]]); //context は 5.0 の新しいコンテンツであり、NULL で無視できます。 offset、maxlen は 5.1 の内容です。 offset はファイルの開始位置をマークするために使用され、maxlen は読み取られるファイルの長さを設定します。この方法はバイナリ ファイルの読み取りに適しています。ファイルの内容を文字列に読み取るための推奨される方法です。オペレーティング システムでサポートされている場合は、パフォーマンスを向上させるためにメモリ マッピング テクノロジも使用されます。特殊文字 (スペースなど) を含む URL を開く場合は、urlencode() を使用して URL をエンコードします。

注: readfile()、file()、および file_get_contents() は、フォルダー全体の内容を読み取る場合は fopen() および fclose() 関数を使用する必要はありませんが、文字、文字行、および任意の長さを読み取る場合には文字を使用する必要があります。

2.ファイルに書き込む: int fwrite(resource handle,string[,int length]);//ファイル書き込み操作を実行します。このメソッドは、文字列の内容をファイル ポインター ハンドルに書き込むためにも使用されます。 length が設定されている場合、操作は length バイトが書き込まれた後、または文字列が書き込まれた後に停止します。書き込みが成功した場合は true を返し、そうでない場合は false を返します。 注: length パラメータが指定されている場合、php.ini ファイル内の magic_quotes_runtime オプションは無視され、文字列内のスラッシュは削除されません。バイナリ ファイルとテキスト ファイル システムを区別するには、ファイルを開くときに fopen() 関数のモード パラメータに「b」を追加する必要があります。 int file_put_contents(string filename,string data[.int flags[,resource context]]);//ファイルに文字列を書き込み、成功した場合はバイト数を返し、そうでない場合は false を返します。 flags: ファイルのロックを実装します (オプションには、file_use_include_path、file_append: 追加、lock_ex: 排他ロックが含まれます)。 context コンテキストリソース。 注: fwrite() にはファイルを書き込む機能がありますが、fopen() および fclose() 関数によってサポートされている必要があります。 file_put_contents() は、fopen()、fwrite()、および fclose() の関数を統合し、独立してファイルの書き込みを完了できます。 3. ファイルを閉じます ファイルが開いている場合は、ファイルに対する操作が完了した後、ファイルを閉じる関数が必要です。そうしないと、エラーが発生する可能性があります。 bool fclose(resource handle); // パラメータ ハンドルが指すファイルを閉じます。成功した場合は true を返し、それ以外の場合は false を返します。

ファイルをロックする データをテキスト ファイルに書き込む場合は、他のユーザーが同時にファイルの内容を変更できないように、最初にファイルをロックする必要があります。ファイルのロックは、flock() 関数を通じて PHP に実装されます。 bool flock(int handle,int activity);//パラメータ操作はロック許可を制御します。以下を含みます: lock_sh: 共有ロック (リーダー) を取得します。 lock_ex: 排他ロック(書き込み)を取得します。 lock_un: ロックを解除します。 lock_nb: ロック時に flock() 関数がブロックされないようにします。

ディレクトリ処理機能 ディレクトリは特別な種類のファイルです。これはファイルなので、操作する場合は、まずファイルを開いて閲覧し、最後に忘れずに閉じる必要があります。

1.ディレクトリを開きます

指定されたディレクトリファイルを開き、成功した場合はディレクトリハンドルを返します。それ以外の場合は false を返します。ファイルを開く場合とは異なり、ディレクトリが存在しない場合、ディレクトリは自動的に作成されず、エラー メッセージがスローされます。 opendir() 関数の前に「@」記号を追加すると、エラー メッセージの出力をブロックできます。 resource opendir(string path[,resource context]);//path は、開くディレクトリ ファイルを指定します。指定されたパスが有効なディレクトリではない場合、または権限の問題によりファイル システム エラーが発生して開けない場合、この関数は false を返し、E_WARNING レベルのエラー メッセージを生成します。

2. カタログを閲覧する

opendir 関数と scandir 関数によって返されたハンドルを使用して、ブラウジング操作を実装します。 Array scandir(string directory[,intsorting_ordering[,resource context]]);//指定されたパスの下のディレクトリとファイルを参照するために使用されます。成功した場合はファイル名を含む配列を返し、それ以外の場合は false を返します。 directory は参照するディレクトリを指定します。ディレクトリでない場合は false が返され、E_WARNING レベルのエラー メッセージが生成されます。 sort_order は並べ替え順序を設定します。デフォルトはアルファベット昇順です。このパラメータを指定すると、降順で並べ替えられます。 注: is_dir() 関数は、指定されたファイル名がディレクトリであるかどうかを判断します。ファイル名が存在し、ディレクトリである場合は true を返し、それ以外の場合は false を返します。相対ディレクトリの場合は、その相対パスが現在の作業ディレクトリに対してチェックされます。

3. ディレクトリを閉じます。 void Closedir(resource handle);//ハンドル、閉じる作業ディレクトリのハンドル。

注: 以前に学んだように、開かれたディレクトリが存在しない場合、システムはディレクトリを作成しません。次に、必要なディレクトリを自分で作成できます。次の機能を適用できます。 mkdir() 関数: 新しいディレクトリを作成し、成功した場合は true を返し、それ以外の場合は false を返します。 rmdir() 関数: ディレクトリを削除します。ディレクトリは空である必要があり (ディレクトリ内にファイルやサブディレクトリが存在しない)、操作権限が必要です。 Unlink() 関数: ファイルを削除し、成功した場合は true、失敗した場合は false を返します。

phpファイルアップロードとphpファイルダウンロードの原則 ​​​​ ステップの内容: ステップ 1: アップロードされたファイルを制御し、php.ini ファイルを通じて設定します。 ステップ 2: アップロードされたファイルを判断します。アップロードするファイルのサイズや形式など ステップ 3: ファイルをアップロードする操作方法を実行します。

1. アップロードされたファイルを制御する:

PHP は、アップロードがサポートされているかどうか、アップロードされたファイルの一時ディレクトリ、アップロードされたファイルのサイズ、命令の実行時間、命令によって割り当てられたメモリ空間など、アップロードされたファイルを php.ini を通じて制御します。 php.ini ファイルでファイル アップロード オプションを見つけて、上記のオプションの設定を完了します。オプションには次の意味があります。 file_uploads: オンの場合は、サーバーがファイルのアップロードをサポートしていることを意味します。オフの場合は、ファイルのアップロードをサポートしていません。通常、これはデフォルトでサポートされており、このオプションを変更する必要はありません。 Upload_tem_dir: ファイルをアップロードするための一時ディレクトリ。ファイルのアップロードが成功する前に、ファイルはまずサーバーの一時ディレクトリに保存されます。ほとんどの場合、システムのデフォルト ディレクトリが使用されますが、自分で設定することもできます。 Upload_max_filesize: サーバーがアップロードできるファイルの最大サイズ (MB 単位)。システムのデフォルトは 2MB です。それを超える場合は、値を変更する必要があります。 max_execution_time: PHP のコマンドを実行できる最大時間 (秒単位)。非常に大きなファイルをアップロードする場合は、このコマンドを変更する必要があります。変更しないと、ファイルのタイムリーなアップロードはサーバーによって許可される範囲内になりますが、コマンドの実行可能な最大時間を超える場合は、やはりアップロードできません。 Memory_limit: php のコマンドによって割り当てられたメモリ空間 (MB 単位)。そのサイズは、非常に大きなファイルのアップロードにも影響します。

備考: クライアントでファイルのアップロードのアプリケーションを制御する場合、フォームの enctype 属性とメソッド属性、および隠しフィールド MAX_FILE_SIZE が制御されます。 enctype="multipart/form-data": フォームエンコードデータ方式を指定します。 Method="post": データ送信の方法を指定します。 : 隠しフィールドを使用して、アップロードされるファイルのサイズをバイト単位で制御します。この値は、php.ini 設定ファイルの Upload_max_filesize オプションで設定された値を超えることはできません。アップロードされるファイルのサイズを完全に制御することはできず、不必要なトラブルを回避することしかできません。

2.アップロードしたファイルを決定します

アップロードされたファイルを判定するためにグローバル変数 $_FILES が使用されます。 $_FILES は、アップロードされたすべてのファイルに関する情報を含む配列です。配列内の各要素の意味は次のとおりです。 $_FILES[ファイル名][名前]: text.txt、title.jpg など、アップロードされたファイルのファイル名を保存します。 $_FILES[ファイル名][サイズ]: 保存されたファイルのサイズ (バイト単位)。 $_FILES[filename][tem_name]: ファイルを一時ディレクトリに保存するために使用されるファイル名。これは、ファイルがアップロードされるときに、最初に一時ディレクトリに一時ファイルとして保存する必要があるためです。 $_FILES[ファイル名][タイプ]: アップロードされたファイルの MIME タイプを保存します。 MIME は、さまざまなファイル形式のタイプを指定します。各 MIME タイプは、「/」で区切られたメイン タイプとサブタイプで構成されます。例:「image/gif」のメインタイプは画像で、サブタイプはGIF形式ファイルです。 「text/html」はテキストのHTMLファイルを表します。 $_FILES[ファイル名][エラー]: ファイルアップロードのエラーコードを格納します: この項目はPHP4.2.0版での新規内容です。戻り値は次の 5 種類で構成されます。 0:エラーがないことを示します。ファイルが正常にアップロードされました。 1:アップロードされたファイルのサイズが設定ファイルディレクティブのupload_max_filesizeオプションの制限値を超えていることを示します。 2:アップロードしたファイルのサイズがHTMLフォームのmax_file_sizeオプションで指定した値を超えていることを示します。 3: ファイルの一部のみがアップロードされていることを示します。 4: ファイルがアップロードされていないことを示します。 例:

  1. /*画像をアップロードするかどうかを決定*/
  2. if(!empty($_FILES['up_picture'][name])){
  3. /*画像の情報を変数に代入* /
  4. $type=strto lower(strstr($_FILES['up_picture'][name],"."));
  5. if($type != '.jpg' && $type != '.gif') echo "アップロードしたファイル形式が間違っています";
  6. else{
  7. if($_FILES['up_picture'][size]<2000000 && $_FILES['up_picture'][size]>0){
  8. echo "アップロードファイル名: ".$ _FILES['up_picture'][name]."
    ";
  9. echo "アップロード ファイルの種類:".$type."
    ";
  10. echo "アップロード ファイル サイズ:".$ _FILES['up_picture'][size]."
    ";
  11. }else echo "画像のサイズが要件を満たしていません。";
  12. }
  13. }
  14. ?>
コードをコピー

1 2 次の最後のページ



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

See all articles