検索

PHPファイル操作例の共有

Mar 15, 2018 am 11:31 AM
php共有


この記事では、主に PHP ファイル操作の例、つまりログの記録、ディレクトリ、ファイルの走査、アップロード、ファイル拡張子を取得する複数の方法、ファイル参照方法、および参照関数の違いについて説明します。

1.   文件建立:fopen()
$file = fopen("test.txt","r");

"r"

読み取り専用モードで開き、ファイル ポインターをファイル ヘッダーにポイントします。

"r+"

読み取り/書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントします。

"w"

書き込みモードで開き、ファイルポインタをファイルヘッダーにポイントし、ファイルサイズをゼロに切り詰めます。ファイルが存在しない場合は、作成してみてください。

"w+"

読み取りおよび書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。

"a"

書き込みモードで開き、ファイルポインタをファイルの末尾に指します。ファイルが存在しない場合は、作成してみてください。

"a+"

読み取り/書き込みモードで開き、ファイル ポインターをファイルの末尾に指します。ファイルが存在しない場合は、作成してみてください。

2.   文件打开关闭:fopen(),fclose()
3.   文件末尾检查:feof()
函数检测是否已到达文件末尾.
4.   文件读取:fread(),file(), file_get_contents(), fgetc(),fgets()
1.  fread(file,length)  
从文件指针 file 读取最多 length 个字节,length(必须)
2.  file_get_contents(file)
将文件的内容读入到一个字符串中的首选方法
3.  file(file)
把整个文件读入一个数组中, 数组中的每个单元都是文件中相应的一行,包括换行符在内。
4.  fgetc(file)
从文件指针中读取一个字符
5.  fgets(file,length)
从文件指针中读取一行, 碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(要看先碰到那一种情况)。
5. 文件指针:
        fseek(file,offset,whence)
    把文件指针从当前位置向前或向后移动到新的位置,新位置从文件头开始以字节数度量。

whence可选。可能的值:

SEEK_SET - 设定位置等于 offset 字节。默认。

SEEK_CUR - 设定位置为当前位置加上 offset。

SEEK_END - 设定位置为文件末尾加上 offset (要移动到文件尾之前的位置,offset 必须是一个负值)。     fseek($fp,-2, SEEK_END);//移动指针到文件末尾

        ftell()    返回文件指针的当前位置。
        rewind()   移动文件指针到文件的开头。
另:php读取超大文件的方法
使用PHP的 fseek 来进行文件操作
这种方式是最为普遍的方式,它不需要将文件的内容全部读入内容,而是直接通过指针来操作,所以效率是相当高效的。

<?php
$fp = fopen($file, "r");
$pos = 0;
$t = " ";
$data = "";
while (!feof($fp)) {
    while ($t != "\n") {
        fseek($fp, $pos);
        $t = fgetc($fp);
        $pos ++;
    }
    $t = " ";
    $data .= fgets($fp);
}
fclose ($fp);
echo $data
?>

6.  获取文件扩展名:
1.  substr(strrchr($filename, '.'), 1);
2.  substr($filename, strrpos($filename, '.')+1);
3.  end(explode('.', $filename));
4.  pathinfo($filename, PATHINFO_EXTENSION); (PHP Filesystem 函数)
7.  目录与文件遍历:

function traverse($path){
  $current_dir = opendir($path);    //opendir()返回一个目录句柄,失败返回false
  while(($file = readdir($current_dir)) !==false) {//readdir()返回打开目录句柄中的一个条目
      $sub_dir = $path .DIRECTORY_SEPARATOR(‘/’) . $file;    //构建子目录路径
if($file == &#39;.&#39; || $file== &#39;..&#39;) {
          continue;
      } else if(is_dir($sub_dir)) {    //如果是目录,进行递归
          echo &#39;Directory &#39; . $file .&#39;:<br>&#39;;
          traverse($sub_dir);
      } else {    //如果是文件,直接输出
          echo &#39;File in Directory &#39; . $path .&#39;: &#39; . $file . &#39;<br>&#39;;
      }}
closedir($current_dir); }//记得打开后要关闭目录句柄哦
 <br>

8.  文件锁定
flock(file,lock,block)

                                       函数锁定或释放文件。若成功,则返回true。若失败,则返回 false。

Lock 参数可以是以下值之一:

·        要取得共享锁定(读取的程序),将 lock 设为LOCK_SH  (share)

·        要取得独占锁定(写入的程序),将 lock 设为LOCK_EX  (exclusive)

·        要释放锁定(无论共享或独占),将 lock 设为 LOCK_UN

·        如果不希望 flock() 在锁定时堵塞,则给lock 加上LOCK_NB

block可选。若设置为 1 或 true,则当进行锁定时阻挡其他进程。

<?php
$file = fopen("test.txt","w+");
// 排它性的锁定
if (flock($file,LOCK_EX))
  {
  fwrite($file,"Write something");
  // release lock
  flock($file,LOCK_UN);
  }
else
  {
  echo "Error locking file!";
  }
fclose($file);
?>
共享锁与排他锁的区别:

1.共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。

排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。

2.共享锁下其它用户可以并发读取,查询数据。但不能修改,增加,删除数据。资源共享.[1] 

相关推荐:

PHP文件操作方法总结 

关于php文件操作的详细介绍

php文件操作函数集

以上がPHPファイル操作例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションに保存されているデータをどのように変更しますか?PHPセッションに保存されているデータをどのように変更しますか?Apr 27, 2025 am 12:23 AM

tomodifydatainaphpsession、starthessession withsession_start()、$ _sessiontoset、modify、orremovevariables.1)startthessession.2)

PHPセッションに配列を保存する例を示します。PHPセッションに配列を保存する例を示します。Apr 27, 2025 am 12:20 AM

配列はPHPセッションに保存できます。 1。セッションを開始し、session_start()を使用します。 2。配列を作成し、$ _Sessionで保存します。 3. $ _Sessionを介して配列を取得します。 4.セッションデータを最適化してパフォーマンスを向上させます。

Garbage CollectionはPHPセッションでどのように機能しますか?Garbage CollectionはPHPセッションでどのように機能しますか?Apr 27, 2025 am 12:19 AM

PHPセッションガベージコレクションは、有効期限が切れたセッションデータをクリーンアップするために確率メカニズムを通じてトリガーされます。 1)構成ファイルにトリガー確率とセッションのライフサイクルを設定します。 2)Cronタスクを使用して、高負荷アプリケーションを最適化できます。 3)データの損失を避けるために、ごみ収集の頻度とパフォーマンスのバランスを取る必要があります。

どのようにしてPHPでセッションアクティビティをトレースできますか?どのようにしてPHPでセッションアクティビティをトレースできますか?Apr 27, 2025 am 12:10 AM

PHPでのユーザーセッションアクティビティの追跡は、セッション管理を通じて実装されます。 1)SESSION_START()を使用してセッションを開始します。 2)$ _Sessionアレイを介してデータを保存およびアクセスします。 3)セッションを終了するには、session_destroy()を呼び出します。セッショントラッキングは、ユーザーの動作分析、セキュリティ監視、パフォーマンスの最適化に使用されます。

データベースを使用してPHPセッションデータを保存するにはどうすればよいですか?データベースを使用してPHPセッションデータを保存するにはどうすればよいですか?Apr 27, 2025 am 12:02 AM

データベースを使用してPHPセッションデータを保存すると、パフォーマンスとスケーラビリティが向上します。 1)MySQLを構成してセッションデータを保存します:PHP.iniまたはPHPコードでセッションプロセッサを設定します。 2)カスタムセッションプロセッサを実装します:データベースと対話するために、開いて、閉じ、読み取り、書き込み、その他の機能を定義します。 3)最適化とベストプラクティス:インデックス、キャッシュ、データ圧縮、分散ストレージを使用して、パフォーマンスを向上させます。

PHPセッションの概念を簡単に説明してください。PHPセッションの概念を簡単に説明してください。Apr 26, 2025 am 12:09 AM

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPセッションに保存されているすべての値をどのようにループしますか?PHPセッションに保存されているすべての値をどのようにループしますか?Apr 26, 2025 am 12:06 AM

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

ユーザー認証にセッションを使用する方法を説明します。ユーザー認証にセッションを使用する方法を説明します。Apr 26, 2025 am 12:04 AM

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール