PHP ファイル関連
ファイル操作、テキストファイル読み書きなどをやります。フォルダのファイル一覧取得
フォルダ内のファイル(フォルダ)一覧を取得するには、glob関数を使用します。引数にはパスを指定します。
ファイルだけ、またはフォルダだけに絞る場合は、is_dir関数、is_file関数を使用します。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
foreach (glob('C:/work/hp/sample/*') as $file) {
if (is_dir($file)) {
echo "フォルダ:" . $file . "<br>";
}
if (is_file($file)) {
echo "ファイル:" . $file . "<br>";
}
}
?>
</body>
</html>
ファイル読み込み
ファイルを読み込むには、file_get_contents関数またはfile関数を使用します。file_get_contents関数はファイルをそのまま取得し、file関数は取得したデータを配列に格納します。引数でパスを指定します。
file関数はオプションを渡していますが、それぞれ以下になります。
| オプション | 説明 |
|---|---|
| FILE_IGNORE_NEW_LINES | 改行文字を付けない |
| FILE_SKIP_EMPTY_LINES | 空行を無視する |
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
$str = file_get_contents("C:/work/hp/sample/test1.txt");
$str = mb_convert_encoding($str, "UTF-8", "SJIS");
echo str_replace("\r\n", "<br />", $str);
$ary = file("C:/work/hp/sample/test1.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($ary as $value) {
echo mb_convert_encoding($value, "UTF-8", "SJIS") . "<br />";
}
?>
</body>
</html>
ファイル書き込み
変数の書き込み
ファイルに書き込むには、file_put_contents関数を使用します。FILE_APPENDオプションを付けると、追記します。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
$str = "C:/work/hp/sample/test3.txt";
file_put_contents($str, "ファイル出力\r\n");
file_put_contents($str, "ファイル追記", FILE_APPEND);
$read = file_get_contents("C:/work/hp/sample/test1.txt");
echo str_replace("\r\n", "<br />", $read);
?>
</body>
</html>
配列の書き込み
配列の書き込みもfile_put_contentsを実行します。implode + PHP_EOLで配列を改行で繋げて出力します。
<?php
$ary = array("A", "B", "C", "D", "E");
file_put_contents("test.txt", implode(PHP_EOL, $ary));
?>
フォルダ作成、ファイル、フォルダ存在チェック
フォルダ作成は、mkdir関数で行います。ファイル、フォロだの存在確認は、file_exists関数で行います。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
$dir = "C:/work/hp/sample/test";
mkdir($dir);
if (file_exists($dir)) {
echo "フォルダが作成されました";
}
?>
</body>
</html>
ファイルコピー、移動、削除
<?php
//コピー
copy(コピー元ファイル, コピー先ファイル);
//移動
rename(移動元ファイル, 移動先フォルダ);
rename(移動元ファイル, 移動先ファイル);
//ファイル名変更
rename(変更元ファイル, 変更先ファイル);
//ファイル削除
unlink(削除ファイル)
?>
ページのトップへ戻る