PHPファイル操作の基礎

PHPはWeb開発だけでなく、ローカルファイルの読み書きやCSV処理、ユーザーからのファイルアップロードにも対応しています。
本記事では、ファイルの読み書き(fopen, fread, fwrite)CSVファイルの入出力、そしてファイルアップロードの基本について、すべて実用的なコード付きでわかりやすく解説します。

ファイルの読み書き(fopen, fread, fwrite)

PHPでは、fopenを使ってファイルを開き、fread/fwriteでデータを読み書きできます。

<?php
$filename = "sample.txt";

// ファイルに書き込む
$handle = fopen($filename, "w");
fwrite($handle, "これはPHPで書き込んだテキストです。");
fclose($handle);

// ファイルを読み込む
$handle = fopen($filename, "r");
$content = fread($handle, filesize($filename));
fclose($handle);

echo nl2br($content); // 改行をHTMLに変換して表示
?>
  • "w":書き込みモード(既存内容は上書き)
  • "r":読み取りモード

CSVデータの読み込みと出力

<?php
$csvFile = "data.csv";

if (($handle = fopen($csvFile, "r")) !== false) {
  while (($row = fgetcsv($handle)) !== false) {
    echo implode(", ", $row) . "<br>";
  }
  fclose($handle);
}
?>

fgetcsv()を使えば、1行ずつ配列として読み込めます。

CSVの出力(書き込み)

<?php
$data = [
  ["名前", "年齢", "メール"],
  ["佐藤", 30, "sato@example.com"],
  ["田中", 25, "tanaka@example.com"]
];

$csvFile = "output.csv";
$handle = fopen($csvFile, "w");

foreach ($data as $line) {
  fputcsv($handle, $line);
}

fclose($handle);
echo "CSVファイルを出力しました。";
?>

fputcsv()を使えば、配列を簡単にCSV形式で保存できます。

ファイルアップロード処理の基礎

PHPでは、ユーザーがアップロードしたファイルを受け取ることができます。
以下は、画像ファイルをuploadsディレクトリに保存する例です。

<!-- upload.php -->
<?php
$uploadDir = "uploads/";
$message = "";

if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_FILES["image"])) {
  $file = $_FILES["image"];
  $target = $uploadDir . basename($file["name"]);

  if (move_uploaded_file($file["tmp_name"], $target)) {
    $message = "ファイルをアップロードしました: " . htmlspecialchars($file["name"]);
  } else {
    $message = "アップロードに失敗しました。";
  }
}
>

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8"&gt;
  <title>ファイルアップロード</title>
</head>
<body>

<h2>画像ファイルをアップロード</h2>

<?php if ($message) : >
  <p><?= $message ?></p>
<?php endif;>

<form method="post" enctype="multipart/form-data">
  <input type="file" name="image" accept="image/*"><br>
  <input type="submit" value="アップロード">
</form>

</body>
</html>

注意:アップロード先の uploads/ フォルダには書き込み権限(パーミッション)が必要です(例:755や777)。

まとめ

今回は、PHPによるファイル操作の基本を一気に解説しました。

  • fopen/fread/fwrite:テキストファイルの読み書き
  • fgetcsv/fputcsv:CSVファイルの読み込み・出力
  • $_FILES + move_uploaded_file():ファイルアップロード処理

これらの機能を使いこなせば、PHPでのデータ管理やユーザー投稿機能が大きく広がります。

採用情報 長谷川 横バージョン
SHARE
PHP Code Snippets Powered By : XYZScripts.com