HOME > ローテーション・バナーを作ってみよう > 

§任意のデータを削除する

ファイル操作の関数では途中のデータだけ削除することは出来ません。
一旦すべてのデータを配列で読み込み変更してから上書きします。

<?php
if($_POST["dell"]){
$n= $_POST["n"]; //解説(1)
$Data=file("list.txt");
for($i=0;$i<sizeof($Data);$i++){//解説(2)
if($i==$n){
array_splice($Data‚ $i‚ 1); //解説(3)
}
}

$fp=fopen("list.txt"‚ "w");//解説(4)
flock($fp‚ LOCK_EX);
foreach($Data as $line)fputs($fp‚ $line); //解説(5)
fclose($fp);
print "削除しました";
}
?>


解説(1)
フォームから送信された「n」の値を変数$nに収めます。
「n」の値には、削除する配列の数値インデックスが収められています。

解説(2)
list.txtを配列として読み込み、$nと一致する、$i番目の要素を削除します。

解説(3)
array_spliceは任意の配列の要素を削除、置換する関数です。

array_splice(対象となる配列‚ 削除を開始する要素の位置‚ 削除する要素の数)
この場合、「配列$Dataの$i番目の要素を1つ削除する」という意味になります。

解説(4)
list.txtを書き込みモードで開きます。
「w」で開くとファイルの中身は一旦空になります。

解説(5)
$Dataは配列型なので直接ファイルに書き込むことは出来ません。
foreach関数を使ってすべての要素を順番にlist.txtに書き込んでいきます。

foreach(配列 as 要素の値を収める変数)命令文

foreach関数は配列のすべての要素に同じ処理をするときに良く使います。

ローテーション・バナーを作ってみよう

  1. 仕組みを考えてみよう。
  2. バナーリストを外部ファイル化する。
  3. 登録画面を作る。
  4. ファイルにデータを追加する
  5. 管理画面への入室制限
  6. 削除画面を作る
  7. 任意のデータを削除する
  8. 引用符などがエスケープされる問題
  9. サーバーへ設置する

メイン・メニュー

  1. はじめに
  2. 入門者向け参考書
  3. PHPの基本
  4. ローテーション・バナーを作ってみよう
  5. 検索結果リンクを自動化しよう
  6. 簡易データベースを作ってみよう
  7. ホームページ制作のためのリンク集

PHPが使えるサーバー

僕が使っているサーバーとドメイン管理のレジストラーです。

ロリポップ!
多くのアフィリエイターが支持する安くて安心の初心者向けレンタルサーバー。MySQLを使うなら↓のチカッパの方が軽いです。
チカッパ!
複数サイトの管理に便利なマルチアカウント、マルチドメイン対応。月額525円〜で500MBの大容量。
ムームードメイン
有料サーバー借りるなら独自ドメインは必須!「.com」「.net」なら年間数百円で取得可能です。ロリポ、チカッパの併用でDNS設定も超簡単!

管理人のブログ

音楽サイトでアフィリエイトblog
音楽アフィリエイトとサイト運営の効率化を考えるブログ