検索
ホームページバックエンド開発PHPチュートリアルPHPファイルディレクトリ操作機能学習メモ_PHPチュートリアル
PHPファイルディレクトリ操作機能学習メモ_PHPチュートリアルJul 13, 2016 am 10:49 AM
php1つ関数消去判断存在する勉強操作する書類権限目次ノート読み書き

PHPにおけるファイル操作は、ファイルの読み書き操作、削除操作、判定操作、許可操作、一部のファイル検索などにすぎません。私が学んだPHPのファイル操作関数を投稿させていただきます。

ファイル操作機能

1. ファイル名を取得します:basename();

2. ファイルが存在するディレクトリを取得します: dirname();

3. Pathinfo() はファイル情報を取得し、パス、ファイルの完全名、ファイル名、拡張子を含む配列を返します。例:

コードは次のとおりです コードをコピー

$file = '/com/netingcn/error.log';
print_r(パス情報($file));
結果は次のようになります:
配列(
[ディレクトリ名] => /com/netingcn
[ベース名] => error.log
[拡張子] => ログ
[ファイル名] => エラー
)

4. ファイルが存在するかどうかを確認します: is_file();

5. ディレクトリが存在するかどうかを確認します: is_dir();

6. ファイルまたはディレクトリが存在するかどうかを確認します: file_exists();

7. ファイルのすべての内容を読み取ります: file() または file_get_contents()。file() は 1 行の要素を含む配列を返し、file_get_contents() はファイルの内容全体を文字列として返します。

8. 次のようなファイル fwrite を書き込みます。

コードは次のとおりです$handler = fopen($file, 'w'); // w は前のコンテンツをフラッシュし、a は追加します
コードをコピー
fwrite($handler, 'コンテンツ');

fclose($handler); //開いているファイル ハンドルを忘れずに閉じてください。 9. ファイルの読み取り操作がたくさんあります

ここでいくつかの簡単な紹介をします:


コードは次のとおりです$handler = fopen($file, 'r');
コードをコピー

while(!feof($handler)) {

$datas[] = fgets($handler) // コンテンツの行を読み取ります

}

while(!feof($handler)) {

$datas[] = fgetss($handler); // コンテンツの行を読み取り、HTML タグを追加します

}

while(!feof($handler)) {

$datas[] = fgetcsv($handler); // コンテンツの行を読み取り、csv フィールドを解析します

}

$content = fread($handler, $strLength) //指定されたロングリードの文字を読み取ります

fclose($handler);

phpのファイル読み込み操作関数

1. fread() を使用して

を取得します。 以下の php コードをご覧ください:


コードは次のとおりです $file = "phpddt.txt";

実行結果:
PHP Diandiantong (www.bKjia.c0m) は、PHP 開発に焦点を当てており、専門的な PHP チュートリアルを提供しています。
2.fseek (リソース ハンドル, int offset [, int whence])、オフセット offset へのポインタをオフセットします。
(php.txtの内容は[www.bKjia.c0mへようこそ]です)
次の PHP コードを実行した後:

コードをコピー
$fp = fopen($file,"r");
if ($fp){
while(!feof($fp)){
// 2 番目のパラメータは読み取り長です
$data = fread($fp, 1000);
}
fclose($fp);
}
$data をエコー;
?>

コードは次のとおりです コードをコピー


$file = "php.txt";
$fp = fopen($file,"r");
//ファイルポインタを8バイト目以降にジャンプ
fseek($fp,8);
//データの読み取り
$data = fgets($fp,4096);
$data をエコー;
?>

結果は次のとおりです:
www.bKjia.c0m へ
wherece パラメータの説明は次のとおりです:
SEEK_SET - オフセットバイトに等しい位置を設定します。
SEEK_CUR - 位置を現在位置にオフセットを加えたものに設定します。
SEEK_END - ファイルの末尾にオフセットを加えた位置を設定します。 (課題)
wherece が指定されていない場合、デフォルトは SEEK_SET です。
3. ftell() 関数を使用してポインター位置のオフセットを取得します
PHP のデモコードは次のとおりです:

コードは次のとおりです コードをコピー


$file = "phpddt.txt";
$fp = fopen($file,"r");
//ファイルポインタを8バイト目以降にジャンプ
fseek($fp,8);
//ポインタ位置のオフセットを取得します
エコー ftell($fp);
?>


実行結果:
8
4. rewind() 関数は、ファイル ポインタを指定された場所に移動します
5. parse_ini_file() 関数は、.ini ファイルを解析し、多次元配列を簡単に解析します。詳細については、以下の php チュートリアルをご覧ください。
まず、phpddt.ini ファイルを保存します。ファイルの内容は次のとおりです。 [web1]
URL= "www.bKjia.c0m"
名前 = php 点電通
[web2]
URL= "www.baidu.com"
名前 = 百度検索
次の PHP コードを記述します:

コードは次のとおりですコードをコピー

$file_arr = parse_ini_file("phpddt.ini",true);
print_r($file_arr);
?>

実行結果は以下の通りです:

配列
(
[web1] => 配列
(
[url] => www.bKjia.c0m
[名前] => )

[web2] => 配列

(

[url] => [名前] = & gt; 百度検索
)

)

ディレクトリ操作


最初の導入は、ディレクトリから読み取る関数、opendir()、readdir()、closedir() です。使用すると、最初にファイル ハンドルが開かれ、次に反復的にリストされます。

コードは次のとおりです

コードをコピー $base_dir = "ファイルリスト/"; $fso = opendir($base_dir);
echo $base_dir."
;

" while($flist=readdir($fso)){
$flist をエコーし​​ます。"
;
" }
クローズドIR($fso)
?>



これはファイルディレクトリ配下のファイルとディレクトリを返すプログラムです(ファイルが0の場合はfalseを返します)

ディレクトリの情報を知る必要がある場合は、 dirname($path) と Basename($path) を使用して、それぞれパスのディレクトリ部分とファイル名部分を返すことができます。フリースペース

コマンドの作成:

コードは次のとおりです コードをコピー

mkdir($path,0777)

、0777 は許可コードであり、非ウィンドウ条件下で umask() 関数によって設定できます。

rmdir($path)

$path にパスがあるファイルは削除されます。

dir -- ディレクトリ クラスは、ファイル ディレクトリを操作するための重要なクラスでもあり、read、rewind、close の 3 つのメソッドを持ちます。これは、最初にファイル ハンドルを使用してファイルを開きます。そして、ポインタを使用してそれを読み取ります。ここで php マニュアルを参照してください:

コードは次のとおりですコードをコピー出力:
$d = dir("/etc/php5");
echo "ハンドル: " . $d->ハンドル . "n";
echo "パス: " . $d->パス . while (false !== ($entry = $d->read())) {
echo $entry."n";
}
$d->close();
?>

ハンドル: リソースID #2

パス: /etc/php5

.
..
アパッチ
CG
クリ

ファイル属性にも非常に重要です。ファイル属性には、作成時刻、最終変更時刻、所有者、ファイル グループ、タイプ、サイズなどが含まれます。

以下ではファイル操作に焦点を当てましょう。

3. ファイル操作

● ファイルを読む

まず、ファイルが読み取れるかどうか (権限の問題)、または is_readable 関数を使用して情報を取得できるかどうかを確認します。:

コードは次のとおりですコードをコピー $file = 'dirlist.php';ファイルの存在を判断する関数には file_exists も含まれています (以下に示します) が、これは明らかに is_readable ほど包括的ではありません。ファイルが存在する場合に使用できます。
if (is_readable($file) == false) {

die('ファイルが存在しないか、読み取ることができません');
} その他 {
echo '存在';
}
?>


コードは次のとおりですコードをコピー $file = "filelist.php";
if (file_exists($file) == false) {

die('ファイルが存在しません');
}
$data = file_get_contents($file);
echo htmlentities($data);
?>


ただし、file_get_contents 関数は、以前のバージョンではサポートされていません。まずファイルへのハンドルを作成してから、ポインターを使用してすべてを読み取ることができます。

$fso = fopen($cacheFile, 'r');

$data = fread($fso, filesize($cacheFile));
fclose($fso);

バイナリ ファイルを読み取る別の方法もあります:

$data = implode('', file($file));

● ファイルを書き込む

ファイルの読み取りと同様に、まず書き込み可能かどうかを確認します:

コードは次のとおりですコードをコピー
$file = 'dirlist.php';

if (is_writable($file) == false) {
die(「私は鶏の羽なので、無理です」);
}
?>

書き込める場合は、file_put_contents 関数を使用して次のように書き込むことができます:

コードは次のとおりですコードをコピー
$file = 'dirlist.php';
if (is_writable($file) == false) {
死ね(「私は鶏の羽だ、無理だ」);
}
$data = '私は卑劣です、私は欲しいです';
file_put_contents ($file, $data);
?>
file_put_contents 関数は php5 で新しく導入された関数です (存在するかどうかわからない場合は、まず function_exists 関数を使用して確認してください)。 以下の方法を使用できます。

$f = fopen($file, 'w');

fwrite($f, $data);

fclose($f);

交換してください。

ファイルを書き込むとき、場合によってはファイルをロックしてから次のように書き込む必要があります:

コードは次のとおりです関数cache_page($pageurl,$pagedata){● ファイルのコピー、削除
コードをコピー
if(!$fso=fopen($pageurl,'w')){

$this->warns('キャッシュ ファイルを開けません。');//trigger_error
false を返します;
}
if(!flock($fso,LOCK_EX)){//LOCK_NB、排他ロック
$this->warns('キャッシュ ファイルをロックできません。');//trigger_error
false を返します;
}
if(!fwrite($fso,$pagedata)){//バイトストリームを書き込み、シリアル化して他の形式を書き込みます
$this->warns('キャッシュ ファイルを書き込めません。');//trigger_error
false を返します;
}
flock($fso,LOCK_UN);//ロックを解除します
fclose($fso);
true を返します;
}

PHP でのファイルの削除は非常に簡単です。リンク解除関数を使用して簡単に操作できます:

コードは次のとおりです $file = 'dirlist.php';

$result = @unlink ($file);
if ($result == false) {
echo 「蚊がいなくなった」;
} その他 {
echo '削除できません';
}
?>

以上です

ファイルのコピーも簡単です:

コードをコピー
コードは次のとおりです コードをコピー

$file = 'yang.txt';
$newfile = 'ji.txt'; # このファイルの親フォルダーは書き込み可能である必要があります
if (file_exists($file) == false) {
die (「デモはオンラインではないため、コピーできません」);
}
$result = copy($file, $newfile);
if ($result == false) {
echo 'メモリのコピーはOK';
}
?>

rename() 関数を使用してフォルダーの名前を変更できます。これらの関数を組み合わせて他の操作も実現できます。

● ファイル属性を取得する

いくつかの一般的な機能について説明します:

最新の変更時刻を取得します:

コードは次のとおりですコードをコピー
$file = 'test.txt';
echo date('r', filemtime($file));
?>
キャッシュテクノロジで一般的に使用される UNIX タイムスタンプを返します。

ファイルのアクセス許可、所有者、すべてのグループ、または inode 内のその他のメタデータが更新されると、fileowner() 関数がファイルの所有者を返します。

最終アクセス時刻の取得も行われます。 fileatime()、filectime()

$owner = posix_getpwuid(fileowner($file));

(非ウィンドウ システム)、ileperms() はファイルのアクセス許可を取得します、

コードは次のとおりですコードをコピー
$file = 'dirlist.php';
$perms = substr(sprintf('%o', fileperms($file)), -4);
エコー $perms;
?>
filesize() はファイル サイズをバイト単位で返します:

コードは次のとおりですコードをコピー
// 出力は次のようになります: somefile.txt: 1024 バイト

$filename = 'somefile.txt';

echo $filename . ': ' . filesize($filename) ';

?>

ファイルのすべての情報を取得するには、配列を返す stat() 関数があります。

コードは次のとおりですコードをコピー
$file = 'dirlist.php';
$perms = stat($file);
var_dump($perms);
?>

http://www.bkjia.com/PHPjc/632695.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632695.html技術記事 phpにおけるファイル操作は、ファイルの読み書き操作、削除操作、判定操作、権限操作、一部のファイル検索などにすぎません。私が学んだphpのファイル操作関数を紹介します...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

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

AI Hentai Generator

AI Hentai Generator

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

ホットツール

DVWA

DVWA

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

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

SecLists

SecLists

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