文件和目录的操作
PHP处理本地服务器上的文件和目录是非常方便的,但有时候会出现权限和路径相关的问题
1.打开文件
resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )
$handle = fopen(filename,mode)//打开文件,返回代表此文件的资源的句柄
文件名称可以使用相对路径或者绝对路径也可以使用网络协议模式,打开模式具有r\r+\w\w+\a\a+\x\x+\b
在操作二进制文件时如果没有指定 'b' 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。
为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 'b' 标记。
以下是几种打开文件的方式
$fp = @fopen('log.txt',"rb");
$fp = @fopen('../log.txt',"rb");
$fp = @fopen("http://www.runer.com.cn/default.htm","rb");//还可以使用ftp和ghoper等协议,必须启用php.ini文件中的allow_url_fopen选项
////////////////////////////代码部分////////////////////////////////////////
$filename1 = "userinfo.txt";//目录下或include_path中存在这个文件
$filename2 = "test.txt";//目录下或include_path并不存在这个文件
$resource1 = fopen($filename1,"rb");
@$resource2 = fopen($filename2,"rb");//因为目录中不存在这个文件,并且并未使用或include_path寻找包含文件所在路径则此操作会报错,使用错误抑制符@可以迫使浏览器不输出错误信息
if($resource1)
echo "打开文件{$filename1}成功";
if(!@fopen($filename2,"r"))
echo "打开文件{$filename2}不成功";
//////////////////////////////////////////////////////////////////////////
---------------------输出结果----------------------------------------
打开文件userinfo.txt成功
---------------------------------------------------------------------
2.使用完毕文件后,要显式的告诉PHP已经使用完文件,让操作系统确保将文件的所有内容正确地从缓冲区刷新到硬盘
使用fclose()关闭文件,
bool fclose ( resource handle )//关闭一个已打开的文件指针
3.读取文件,fopen函数的mode参数允许读取,PHP提供了几个函数从文件读取数据
string fgets ( int handle [, int length] )从文件指针中读取一行,在二进制文件上尝试fgets会产生不可预测的结果
如果不指定长度,默认读取1K数据,碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止
string fgetss ( resource handle [, int length [, string allowable_tags]] )从文件指针中读取一行并过滤掉 HTML 标记
fgetc()读取单个字符
fread()读取任意二进制数据
////////////////////////////代码部分////////////////////////////////////////
$handle = fopen ("test.jpg", "rb");
$c;
while (!feof($handle)) {
$contents .= @fread($handle, 8192);//循环读取并将其合并为一个大块文件
}
fclose($handle);
//////////////////////////////////////////////////////////////////////////
---------------------输出结果----------------------------------------
----------------------------------------------- --- -----------------------
4. ファイルの読み取りステータスを確認します
各ファイル ハンドルにはファイル ポインター、または次のファイルへのポインタ ファイル内で操作が行われるカーソル。 fopen 関数
のモード パラメータに従って、ファイル ポインタは最初はファイルの先頭 (0) またはファイルの末尾に配置されます。
feof() はファイルが最後に到達したかどうかを判断できます (関数は終了後に TRUE を返します)
filesize() 関数はファイルのサイズを返します 5. ファイルを作成します
fwrite() 関数ファイル書き込みを実行します
///////////// //////////////コード部分////////////// ///////////////////// //////
$filename = 'test.txt';
$somec;
/ / まず、ファイルが存在し、書き込み可能であることを確認する必要があります。
if (is_writable($filename)) {
// この例では、追加モードを使用して $filename を開きます。
// したがって、ファイル ポインタはファイルの先頭になります。
// fwrite() を使用するときに $somecontent が書き込まれる場所です。
if (!$handle = fopen($filename, 'a')) {
echo "ファイル $filename を開けません";
exit;
}
// $somecontent を書き込みます私たちが開いたファイル。
if (fwrite($handle, $somecontent) === FALSE) {
echo "ファイル $filename に書き込めません";
exit;
}
echo "$somecontent は正常に実行されましたファイル $filename";
fclose($handle);
} else {
}
echo "ファイル $filename は書き込み可能ではありません";
////// //////////////////////////////////////////////// //// ///////////////////
----------------------出力結果------ ----------------------------------
これらのテキストが正常に追加されましたファイルを作成し、ファイル test .txt
に書き込みました-------------------------------------- ------------ ------------------------
バイナリ データの場合、3 番目のパラメータは次のようにする必要があります。ディスクに書き込まれるデータ バイト数を含む
$result = @fwrite($fp,$binary_data,mb_strlen($binary_data,'8bit'));
6. ファイルのアクセス許可とその他の情報が含まれます。 >is_readable()//ファイルが読み取り可能かどうかを判定
is_writeable()//ファイルが書き込み可能かどうかを判定
is_writable()//ファイルが書き込み可能かどうかを判定
fileperms()//ファイルのパーミッション (UNIX スタイルのファイルパーミッションテスト関数)
file_exists( )//このファイルが存在するかどうか
fileowner()//ファイルが属するユーザーを決定します
filegroup()//決定ファイルが属するグループ
7. ファイルを削除して名前を変更します
unlink()//ファイルを削除
rename()//ファイルの名前を変更します
8. ディレクトリにアクセスします
をお勧めしますディレクトリ アクセスにスラッシュ "/" を使用します。Windows および UNIX システムと互換性があります
basename()//ファイル名のパス情報は含まれません
dirname()//ファイル名のディレクトリ部分を返します
realpath()//相対パスを受け入れ、ファイルの絶対パスを返します
pathinfo()//指定されたパス名、基本ファイル名、拡張子のディレクトリを抽出します
opendir()//Openディレクトリを検索し、リソースハンドルを返します
readdir()//ディレクトリエントリを読み取ります
rewinddir()//読み取りポインタを先頭に戻します
closedir()//読み取りハンドルを閉じます
chdir ()//現在のスクリプトの実行中に現在の作業ディレクトリを変更します
mkdir()//ディレクトリを作成します
rmdir()ディレクトリを削除します
/// //////// //////////////////コード部分//////////////////////// ////// ///////////
////////////////////////////////// ////////////////////////////////////////
--- --- ---------------出力結果--------------------------------- ----------

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

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

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