PHP_PHP チュートリアルでのディレクトリ操作とファイル操作

WBOY
リリース: 2016-07-21 14:52:59
オリジナル
950 人が閲覧しました

Web プログラミングでは、ファイル操作は常に頭の痛い問題ですが、CMS システムではファイル操作が必要であり、次のような操作によく遭遇します。ファイル ディレクトリの生成、ファイル (フォルダー) の編集など。ここで、PHP のこれらの関数の詳細な概要を作成し、それらの使用方法を例とともに示します。対応する関数の詳細については、PHP マニュアルを参照してください。重要な点と注意が必要な点のみをまとめます (PHP マニュアルには記載されていません)

2. ディレクトリ操作

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

$base_dir = "filelist/"; );

echo $base_dir."


while($flist=readdir($fso)){ echo $flist."
" ) ?>



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

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

作成コマンド:

mkdir($path, 0777)

、0777 は許可コードです。非ウィンドウでは、umask() 関数を使用して

rmdir($path)

のパスを持つファイルを削除します。 in $path.

dir -- directory クラスもファイル ディレクトリを操作するための重要なクラスです。read、rewind、close の 3 つのメソッドがあり、これは最初にファイル ハンドルを使用します。次に、ポインタを使用してそれを読み取ります:
$d = dir("/etc/php5");

echo "Handle: " 。ハンドル . "n";

echo "パス: " . $d->path . "n";

while (false !== ($entry = $d->read()) {

echo $entry ."n";

}$d->close();?> ;ハンドル: リソース ID #2パス: /etc/php5

.

..

apache

cgi



出力:




cli A. ファイルを読み取ります



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

ファイルに焦点を当てましょう

3. ファイル操作

まず、ファイルを確認します。読み取れない (権限の問題) か、ファイルが存在しない場合は、is_readable 関数を使用して情報を取得します。

$file = 'dirlist.php';

if (is_readable($file) == false) {

die('ファイルが存在しないか、読み取れません');

} else {

echo '存在';

}?>

ファイルの存在を判断する関数には file_exists も含まれています (以下に示します) が、これは明らかに is_readable ほど包括的ではありません。 file = "filelist.php";

if (file_exists($file) == false) {

die('ファイルが存在しません');

}$data = file_get_contents($file);echo htmlentities($data ); バイナリ ファイルを読み取る別の方法もあります:
?>





ただし、file_get_contents 関数は、以前のバージョンではサポートされていません。まずファイルへのハンドルを作成してから、ポインターを使用してすべてを読み取ることができます。 fopen($cacheFile, 'r');
$data = fread($fso, filesize($cacheFile));
fclose($fso);

$data = implode('', file($file)); の書き込みは、最初に次のように記述できるかどうかを確認します。 $file = 'dirlist .php';

if (is_writable($file) == false) {

die(「私は鶏の羽です、無理です」);

}

?>


B. ファイル
書き込みができる場合は、file_put_contents 関数を使用して次のように入力できます。 false) {
die('私はチキンです、私はできません');

$data = '私は卑劣です、私は欲しいです';

file_put_contents ($file, $data);

file_put_contents 関数は php5 で新しく導入された関数です (存在するかどうかわからない場合は、まず function_exists 関数を使用してください。確認してください) PHP の低いバージョンは使用できません。次の方法を使用できます:

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



を書き込むときにロックする必要がある場合があります。ファイルを作成し、次のように書き込みます:

function cache_page($pageurl,$pagedata){

if(!$fso=fopen($pageurl, 'w')){

$this->warns('Unableキャッシュ ファイルを開きます。');//trigger_error return false } fclose($ fso); }
if(!flock($fso,LOCK_EX)){//LOCK_NB, row その他のタイプのロック
$this->warns('ロックできませんキャッシュ ファイル。');//trigger_error
return false;
}
if(!fwrite($fso,$pagedata)){//他の形式を書き込むためにシリアル化します
$this->warns('Unable ');//trigger_error
return false;
flock($fso,LOCK_UN);//解放ロック

;

C. ファイルのコピーと削除

php を使用してファイルを削除するのは非常に簡単です:

$newfile = 'ji.txt'; # このファイルの親フォルダー書き込み可能である必要があります
$file = 'dirlist.php'; result = @unlink ($file ; これも簡単です:






$file = 'yang.txt';
if (file_exists($ file) == false) {

die ('デモはオンラインではないためコピーできません')

}

$result = copy($file, $newfile); $result == false) {

echo 'Copy Memory ok'

}

?> echo date( 'r', filemtime($file)) ; ?>

これらの関数を組み合わせて他の操作を実行することもできます。
D. ファイル属性を取得する

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


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



$file = 'test.txt';

は、最終アクセス時刻の取得にも関連しています。 ) ファイルのパーミッションがすべて、またはすべてのグループまたは他の i ノードのメタデータが更新されたとき、fileowner() 関数はファイル所有者を返します。

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

echo $perms;?>



$file = 'dirlist.php';

$perms = substr(sprintf ('%o', fileperms($file) ), -4);

filesize() はファイル サイズのバイト数を返します:

// 出力は次のようになります: somefile.txt: 1024 バイト

$filename = 'somefile.txt';

echo $filename ': ' ' bytes';

?>



ファイル全体を取得する 情報には、配列を返す関数 stat() があります。 = stat($file);


そのキーが何に対応しているかについての詳細情報を確認できます。ここでは展開されません。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/371506.html技術記事どのコンピュータ機器においても、ファイルは必要なオブジェクトであり、Web プログラミングでは、ファイル操作は Web プログラマーにとって常に頭の痛い問題であり、CMS システムでもファイル操作は必要です...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート