以下はPHPのファイル操作機能について個人的にまとめたものです。もちろん、これはほんの一部であり、リストしていないものは他にもたくさんあります。
1. パスを解析します:
1 ファイル名を取得します:
basename();
ファイルへの完全なパスを含む文字列を指定すると、この関数はベース ファイル名を返します。ファイル名が接尾辞で終わる場合、この部分も削除されます。
例:
$path = "/home/httpd/html/index.php"
$file =basename($path,".php"; ); // $file は "index" に設定されます
2 ディレクトリ部分を取得します:
dirname();
ファイルへのフルパスを含む文字列を指定すると、この関数はファイル名を削除した後のディレクトリ名を返します。
例:
$path = "/etc/passwd";
$file = dirname($path); // $file は "/ に設定されます。 etc"
3 パス連想配列を取得します
pathinfo();
指定されたパスの 3 つの部分 (ディレクトリ名、ベース名、拡張子) を取得します。
例:
$pathinfo = pathinfo("www/test/index.html")
var_dump($pathinfo);
// $path[ 'dirname']
$path['basename']
2. ファイルの種類 1. ファイルの種類を返します。可能な値は、fifo、char、dir、block、link、file、unknown です。
例:
1. fstat(); 開かれたファイル ポインターを通じてファイル情報を取得します
ファイル ポインター ハンドルによって開かれたファイルに関する統計情報を取得します。この関数は stat() 関数に似ていますが、ファイル名ではなく開いているファイル ポインターを操作する点が異なります。
例:
//統計情報を取得します。
$fstat = fstat ($fp);
// ファイルを閉じる
fclose($fp);
// 連想配列部分のみを表示
stat ()
ファイル名で指定されたファイル統計を取得します (fstat() に似ています)
1. filesize()
エラーが発生した場合は、FALSE を返します。 E_WARNING レベルのエラー。
例:
コードをコピーします
コードは次のとおりです:
例
[code]
// $df には数値が含まれますルートディレクトリで利用可能なバイト数
$df = disc_free_space("/");
//Windows の場合:
disk_free_space("D:");
3.
ディレクトリの合計ディスク サイズを返します
例: (上記と同じ、関数を置き換えます)
別: ディレクトリのサイズを計算する必要がある場合、それを実現する再帰関数を作成できます
コード
コードをコピーします
コードは次のとおりです:
$dir_size +=filesize($dir.'/'.$filename);
}else if(is_dir( $dir.'/'.$filename)){
$dir_size +=dir_size($dir.'/'.$filename );
}
}
}#end while
}# opendir を終了
@closedir($dh );
return $dir_size
;
5. アクセスと変更時間 1. fileatime(): 最終アクセス時間
2. filectime(): 最終変更時間 (コンテンツのみを参照)修正)
6. ファイル I/O 操作
1. fopen -- ファイルまたは URL を開きます mode 説明
'r' 読み取り専用モードで開き、ファイル ポインターをファイル ヘッダーにポイントします。
'r+' 読み取り/書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントします。
'w' は書き込みモードをオンにし、ファイル ポインタをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。
「w+」は読み取り/書き込みモードで開き、ファイル ポインターをファイル ヘッダーにポイントし、ファイル サイズをゼロに切り捨てます。ファイルが存在しない場合は、作成してみてください。
'a' は書き込みモードで開き、ファイル ポインタがファイルの末尾を指します。ファイルが存在しない場合は、作成してみてください。
「a+」は読み取り/書き込みモードで開き、ファイル ポインタがファイルの末尾を指します。ファイルが存在しない場合は、作成してみてください。
「x」はファイルを作成して書き込み用に開き、ファイルポインターをファイルヘッダーに指します。ファイルが既に存在する場合、fopen() 呼び出しは失敗して FALSE を返します。
'x+' が作成され、読み取りと書き込みのために開かれ、ファイル ポインターがファイル ヘッダーを指します。ファイルが既に存在する場合、fopen() 呼び出しは失敗し、FALSE を返します
例:
2. file -- ファイル全体を配列に読み込みます (この関数は非常に便利です)
例:
Code
foreach ($lines as $line_num => $line) {
echo "Line #{$line_num} : " . htmlspecialchars($line) "
n ";
}
// Web ページを文字列に読み取る別の例。 file_get_contents() を参照してください。
$html = implode('', file ('http://www.example.com/'));
3. fgets -- ファイル ポインターから行を読み取ります
例:
while (!feof( $handle)) {
$buffer = fgets($handle, 4096);
echo $buffer
}
4.ファイルポインタとフィルタ HTML タグの除去
fgets() と同じですが、 fgetss は読み取ったテキストから HTML タグと PHP タグを除去しようとします。
オプションの 3 番目のパラメータを使用して、削除しないタグを指定できます。
1. opendir - ディレクトリ ハンドルを開き、後続の Closedir() で使用できます。 readdir() および rewinddir() 呼び出し。
2. readdir -- ディレクトリ ハンドルからエントリを読み取り、ディレクトリ内の次のファイルのファイル名を返します。ファイル名はファイル システム内の順序で返されます。
例:
Code
コードをコピー
while (false !== ($file = readdir($handle))) {
echo "$ filen";
}
while ($file = readdir($handle)) {
echo "$filen";
}
closedir($handle);
}
[code]
3. scandir -- ファイルをリストします。指定されたパスとディレクトリ (非常に便利) は、ディレクトリ内のファイルとディレクトリを含む配列を返します。
デフォルトの並べ替え順序はアルファベット昇順です。オプションのパラメータsorting_orderが使用される(1に設定される)場合、並べ替え順序はアルファベットの降順になります。
例:
[コード]
$dir = '/tmp';
$files2 = scandir($files1); );
追記:
7. ファイル属性の操作(OSの環境が異なる場合がありますので注意してください)
1 ファイルが読み取り可能かどうか:
boolis_readable (文字列ファイル名)
ファイル名で指定された場合はTRUEを返します。ファイルまたはディレクトリが存在し、読み取り可能であるかどうか。
PHP は、Web サーバーを実行しているユーザー名 (通常は「nobody」) でのみファイルにアクセスできる場合があることに注意してください。セーフ モードの制限にはカウントされません。
2 ファイルが書き込み可能かどうか
bool is_writable ( string filename )
ファイルが存在し、書き込み可能であれば TRUE を返します。 filename パラメータには、書き込み可能性のチェックを可能にするディレクトリ名を指定できます。
PHP は、Web サーバーを実行しているユーザー名 (通常は「nobody」) でのみファイルにアクセスできる場合があることに注意してください。セーフ モードの制限にはカウントされません
3 ファイルが存在するかどうかを確認します
boolfile_exists ( string filename )
filename で指定されたファイルまたはディレクトリが存在する場合は TRUE を返し、それ以外の場合は FALSE を返します
============== ========================PHP ファイル操作クラス====================== == ===================
/*************************************************** * **************************************
ファイル名:File.cls.php
ファイル紹介: clsFile クラス定義、ファイル操作のカプセル化
バージョン: 2.0 最終更新日: 2011-8-23
*************************** *********************************************** **** **********/
!define('INIT_PHPV') && die('直接スクリプトアクセスは許可されません');
class clsFile
{
private $fileName_str;ファイル
private $fileOpenMethod_str; //ファイルを開くモード
function __construct($fileName_str='',$fileOpenMethod_str='readOnly')//パス、デフォルトは空のモードです
{
/ /Constructor 関数、データメンバーの初期化を完了します
$this->fileName_str=$fileName_str;
}
function __destruct()
{
//Destructor
}
public function __get($ valName_val)//取得するデータメンバーの名前
{
//指定された名前のデータメンバーの値を取得する特別な関数
return $this->$valName_val
}
private function; on_error($errMsg_str='不明なエラー!' ,$errNo_int=0)//エラーメッセージ、エラーコード
{
echo 'プログラムエラー:'.$errMsg_str.'エラーコード:'.$errNo_int;//エラー処理関数
}
public function open()
{
//対応するファイルを開き、ファイルリソース識別を返す
//fileOpenMethod_str に従って開く方法を選択する
switch($this->fileOpenMethod_str)
{
case 'readOnly' :
$openMethod_str='r'; //読み取り専用、ポインタはファイルヘッダを指します
break;
case 'readWrite':
$openMethod_str='r+'; //読み取りおよび書き込み、ポインタはファイルヘッダを指しますfile header
break;
case 'writeAndInit':
$openMethod_str='w'; //書き込みのみ、ポインターはファイル ヘッダーを指し、ファイル ヘッダーが存在しない場合は作成します。
case 'readWriteAndInit':
$openMethod_str='r+'; //読み取りと書き込み、ポインターはファイル ヘッダーを指し、ファイルが存在しない場合は作成されます。
case 'writeAndAdd':
$openMethod_str='a'; //書き込みのみ、ポインタはファイルの末尾を指し、存在しない場合は
break;
case 'readWriteAndAdd':
$openMethod_str=' a+'; //読み取りと書き込み、ポインターはファイルの末尾を指します。ファイルが存在しない場合は作成します
default:
$this->on_error('Open メソッド エラー!',310) ;//エラー処理
exit;
// ファイルを開きます
if(!$fp_res=fopen($this->fileName_str,$openMethod_str))
{
$this->on_error('Can'tファイルを開きます!',301);//エラー処理
exit;
}
return $fp_res;
}
public function close($fp_res)//open によって返されたリソース ID
{
// 開いたファイルを閉じます
if(!fclose($fp_res))
{
$this->on_error('ファイルを閉じることができません!',302);//エラー処理
exit;
}
}
public function write()/ /$fp_res,$data_str,$length_int: ファイルリソース ID、書き込み文字列、長さ制御
{
//文字列 string_str をファイル fp_res に書き込み、書き込み長さを制御 length_int
//パラメータの数を判断、関連関数を呼び出す
$ argNum_int=func_num_args();/ /パラメータの数
$fp_res=func_get_arg(0); //ファイルリソースの識別
$data_str=func_get_arg(1); //書かれた文字列
if($argNum_int==3)
{ $length_int=func_get_arg (2); //長さ制御
if(!fwrite($fp_res,$data_str,$length_int))
{
$this->on_error('ファイルを書き込めません!',303) ;//エラー処理
exit
}
}
else
{
if(!fwrite($fp_res,$data_str))
{
$this->on_error('ファイルを書き込めません!',303 );// エラー処理
exit;
}
}
}
public function read_line()//$fp_res,$length_int: ファイルリソース識別子、読み取り長
{
//ファイル fp_res から文字列を 1 行読み取ります。長さを制御できます
//パラメータの数を決定します
$argNum_int=func_num_args();
if($argNum_int==2)
{
$length_int=func_get_arg(1);
if($string_str=! fgets($fp_res,$length_int))
{
$this->on_error('ファイルを読み取れません!',304);//エラー処理
終了}
return; $string_str;
}
else
{
if(!$string_str=fgets($fp_res))
{
$this->on_error('ファイルを読み取れません!',304);//エラー処理
exit;
}
return $ string_str;
}
}
public function read($fp_res,$length_int)//ファイルリソース識別、長さ制御
{
//ファイル fp_res を読み込み、最長は length_int です
if(!$ string_str=fread($fp_res ,$length_int))
{
$this->on_error('ファイルを読み取れません!',305);//エラー処理
終了
return $string_str;
public function is_exists($ fileName_str)//ファイル名
{
//ファイル $fileName_str が存在するかどうかを確認し、存在する場合は true を返し、存在しない場合は false を返します
return file_exists($fileName_str)
}
/* *****************ファイルサイズの取得*************************/
/*
ファイルのサイズを取得します fileName_str
$fileName_str はファイルのパスと名前です
ファイル サイズの値を返します
*/
public function get_file_size($fileName_str)//File名前
{
ファイルサイズを返す($fileName_str);
/*******************変換ファイルサイズの表記方法*************************/
/*
$fileSize_int ファイルのサイズ (バイト単位)
変換されたファイル サイズを測定単位で返します
*/
public functionchange_size_express($fileSize_int)//ファイル名
{
if ($fileSize_int>1024)
{
$fileSizeNew_int=$fileSize_int/1024;//K に変換
$unit_str='KB';
if($fileSizeNew_int>1024)
{
$fileSizeNew_int=$fileSizeNew_int/ 1024 ;/ /M に変換
$unit_str='MB';
}
$fileSizeNew_arr=explode('.',$fileSizeNew_int);
$fileSizeNew_str=$fileSizeNew_arr[0].'.'.substr($fileSizeNew_arr[1 ], 0,2).$unit_str;
}
return $fileSizeNew_str;
/******************ファイルの名前を変更*************************/
/*
oldname_str で指定されたファイルの名前を newname_str に変更します
$oldName_str はファイルの元の名前です
$ newName_str はファイルの新しい名前です
エラーメッセージを返します
*/
public function rename_file($oldName_str,$newName_str)
{
if(!rename($oldName_str,$newName_str))
{
$this->on_error ( 'ファイル名を変更できません!',308);
exit
}
}
/******************ファイルの削除*********************/
/*
filename_str で指定されたファイルを削除します
$fileName_str削除される可能性があります
Return エラーメッセージ
*/
public function delete_file($fileName_str)//
{
if(!unlink($fileName_str))
{
$this->on_error('ファイルを削除できません!', 309);/ /エラー処理
exit;
}
}
/*******************ファイルの拡張子を取得**************************/
/*
filename_str で指定されたファイルの拡張子を取得します
$fileName_str はファイル パスとタイプの名前を受け取ります
Returnファイルの拡張子
* /
public function get_file_type($fileName_str)
{
$fileNamePart_arr=explode('.',$fileName_str);
while(list(,$fileType_str)=each($fileNamePart_arr))
{
$type_str=$fileType_str;
}
return $type_str;
}
/*******************ファイルが指定されたファイル タイプであるかどうかを確認します*************************/
/*
$fileType_str で指定されたファイルの種類
$fileName_str 取得されるファイルのパスと名前
false または true を返します
*/
public function is_the_type ($ FILENAME_STR, $ Filetype_arr) {
$ Cheakfiletype_Str = $ This- & GT;
{
return false;
else {{
return true;
}
}
/********************ファイルをアップロードし、アップロードされたファイル情報を返します************************ **/
/*
$fileName_str ローカル ファイル名
$filePath $filePath が str の場合、アップロードされるファイルのパス。新規 ファイル名に -1、2、3.. を追加します。
$allowType_arr はアップロードできるファイルの種類です。制限はありません。
$maxSize_int 許可されるファイルの最大値。空白のままにすると、制限はありません。
戻り値は、新しいファイル情報の 2 次元配列です。
*/
public function Upload_file($) fileName_str,$filePath,$allowType_arr='',$maxSize_int='')
{
$fileName_arr=$_FILES[$fileName_str][' name'] // ファイルの名前
$fileTempName_arr=$_FILES[$] fileName_str]['tmp_name']; //ファイルのキャッシュファイル
$fileSize_arr=$_FILES[$fileName_str]['size'];//ファイルサイズを取得
$reFileInfo_arr=array(); ($fileName_arr)-1;
for($i=0;$i{
if($fileName_arr[$i ]!='')
{
if($allowType_arr!= '' および !$this->is_the_type($fileName_arr[$i],$allowType_arr))//許可されたファイル タイプであるかどうかを判断します
{
$ this->on_error('ファイルは許可されたタイプではありません! ',310);//エラー処理
break;
}
if($maxSize_int!='' and $fileSize_arr[$i]>$maxSize_int)
{
$this->on_error('ファイルが多すぎますbig!',311);//エラー処理
break;
$j=$i+1;
$fileType_str=$this->get_file_type( $fileName_arr[$i]);// ファイル タイプを取得します
if(!is_array($filePath))
{
$fileNewName_str=$filePath.'-'.($j).'.'.$fileType_str;
}
else
{
$fileNewName_str=$filePath_arr[$i] ].'.'.$fileType_str;
}
copy($fileTempName_arr[$i],$fileNewName_str);//ファイルをアップロード
unlink($fileTempName_arr[$i ]);//キャッシュされたファイルを削除
//-- -------------ストレージファイル情報---------------/ /
$doFile_arr=explode( '/',$fileNewName_str);
$doFile_num_int=count($doFile_arr)-1;
$reFileInfo_arr[$j]['name']=$doFile_arr [$j]['type ']=$fileType_str;
$reFileInfo_arr[$j]['size']=$this->change_size_express($fileSize_arr[$i]);
}
}
$reFileInfo_arr; #&*/
}
お役に立てば幸いです。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版
便利なJavaScript開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

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