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

§ファイルにデータを追加する

データに不都合な文字列がある場合、整形してからファイルに書き込みます。

データの下処理とファイル操作

ファイルにデータを追加するプログラム

<?php
if( $_POST [ "regist" ] != "" ) { //解説(1)

$NewLink = $_POST [ "link" ]; //解説(2)
$NewLink = str_replace ( "\n"‚ ""‚ $NewLink );
$NewLink = str_replace ( "\r"‚ ""‚ $NewLink );
$NewLink = $NewLink."\n";

$fp= fopen( "list.txt" ‚ "a" );//解説(3)
flock($fp‚ LOCK_EX);
fputs ( $fp‚ $NewLink );
fclose ( $fp );
print "登録しました";
}
?>


今回POSTで送られてくるデータは link と regist の二つです。
それぞれ $_POST["list"] と $_POST["regist"] で受け取ります。

解説(1)
「 != 」は左辺と右辺が等しくない(不等号)ということを表します。
つまり「 $_POST["regist"]の中身が空でなければ { } 内の命令を実行する」という意味です。
単純に if( $_POST["regist"] ) と書き換えることも出来ます。

解説(2)
送られたデータを下処理します。
フォームから送られるデータにはプログラムに影響を与える文字列が含まれる場合があります。
ファイルに書き込む前にこれらを削除(もしくは置換)して形を整えます。

今回問題になるのは改行ですね。
「\n」「\r」はどちらも改行コードです。
str_replace は文字列内の特定の文字を置換する関数です。
$NewLinkに改行コードが含まれる場合削除します。

str_replace ( "変更する文字列"‚ "変更後の文字列"‚ "対象になる文字列" )

最後に$NewLinkの末尾に「\n」を加えて完成です。

解説(3)
いよいよファイルに書き込みます。

fopen ("ファイルのパス"‚ "モード")
fopen関数はファイルを指定したモードで開き、ファイルハンドルを返します。
モードに「a」を指定するとファイルを書き込める状態で開き、ポインタを最後尾に置きます。

flock(ファイルハンドル‚ ロックの種類);
処理の間他の操作が出来ないようにファイルをロックしておきます。

fputs ( ファイルハンドル‚ "書き込む内容" );
指定したファイルハンドルのファイルに先ほど整形したデータ($NewLink)を書き込みます。

fclose ( ファイルハンドル )
ファイルを閉じます。

プログラムのご使用による損害は直接、間接に関わらず一切の責任をもちません。ご使用は自己責任でお願いします。

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

  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
音楽アフィリエイトとサイト運営の効率化を考えるブログ