• ベストアンサー

テキストファイルの先頭への文字列挿入について

更新履歴を自動で作成するようなものを作りたく思っています。 それで既に何かが入力されているテキストファイルに 先頭への挿入という形で書き込みを行いたいのですが なにか良い方法はありませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • SHlVA
  • ベストアンサー率48% (20/41)
回答No.4

一度書き直したので、少し間違ってました。 正しくは /// 現時点のファイルの内容を抜き出す $value = file_get_contents(ファイル); $new = "更新内容";/// 更新内容 $fp = fopen(ファイル,'w');///ファイルを開く fwrite($fp,$new.$value);/// 元ファイルの内容に更新内容を加えて書き込み fclose($fp);/// ファイルを閉じる ま、#1,2さんのおっしゃることを書いただけです。 用はPHPリファレンスを見て実現できそうな関数を並べるだけですから、アイデアの問題だと思います。 思い通りの動作を1つの関数で実現できることはあまりないですね。 PHP歴1年で、知識も経験も少ないですが、やりたいのにできないということは今のところありません。 初心者なのでムダな処理が多いかもしれませんが、改善すればいいだけです。とりあえずは、動くスクリプトを作ることから始めると楽です。がんばりましょう。

nakayamadori
質問者

お礼

どうもありがとうございました。 うまく動きました。大変助かりました。 関数をいかにうまく使用するかについても 加えて勉強していきたいと思いました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • SHlVA
  • ベストアンサー率48% (20/41)
回答No.3

$value = file_get_contents(ファイル); $new = "更新内容"; $fp = fopen(ファイル,'w'); fwrite($fp,$time.$value); fclose($fp); なんてのはいかがでしょうか?

nakayamadori
質問者

お礼

なるほど! どうもありがとうございます やってみます!

全文を見る
すると、全ての回答が全文表示されます。
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

ファイル操作には先頭や途中に挿入とか一部削除などの操作は出来ません。 上書きか最後部に追加または全部書き直しになります。 先頭に追加する場合は全部書き直すしかないですね。

nakayamadori
質問者

お礼

やはりそうですか・・・ アドバイスありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

PHPからテキストファイルを書き換えることが できる環境にあるということでしょうか? であれば開いて書いて保存して閉じるだけだと 思いますが

nakayamadori
質問者

お礼

開いて書いてだと末尾への追記か 先頭への上書きしか出来なかったので 質問させていただいたのです。 回答ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • バッチファイルでテキストファイルに列を挿入

    バッチファイルを用いて、大量のテキストファイルに先頭列を挿入し、かつファイル名をその先頭列にコピーできないかと考えております。 具体的には、 テキストファイルA XXX YYY ZZZ テキストファイルB XXY YYY ZZZ のようになっているものを、 テキストファイルA AXXX AYYY AZZZ テキストファイルB BXXX BYYY BZZZ といった形に変換したいです。 プログラムに関しては初心者です。 具体的なプログラムの内容を教えていただける方がいらっしゃいましたらよろしくお願いいたします。

  • テキストファイルの行頭に文字列挿入したい

    いま、コマンドボタンを押すと、特定のフォルダ内にある全テキストファイル(約1Kサイズの約100文字前後、約20個程度)の先頭に「日付(mm/dd)」を挿入したいのですがvbで可能でしょうか? webでいろいろ調べてみましたが探すことができませんでした。 だれか教えてもらえませんか? 環境:vb6

  • word2007で文字列を一発で挿入できる方法について教えて下さい。

    word2007で文字列を一発で挿入できる方法について教えて下さい。 フォルダ内にいくつものファイルがあるとします。ビジネス文書を作成するにあたり、発信者を全ファイルに何度も入力するのは手間がかかります。一つのファイルに文字を入力すれば他のファイルもすべて同じように文字列が挿入できる方法はありますか? 大元のファイルが更新されたら、他のファイルも同じように更新されるというイメージなのですが・・・・。わかる方おられましたら宜しくお願い致します。wordではそういう機能はないようでしたら、EXCELではできないでしょうか?

  • テキストファイルの特定行、特定列に文字を挿入

    テキストファイルがあるとします。 ある特定の行、特定の列に文字を挿入したいです。 又は、あらかじめ、特定の文字を書いておき、 置換により文字を置き換える方法でも良いです。 これを、コマンドを使用し、batファイルで自動的に 実行したいです。 どのような方法があるでしょう?

  • ファイルの途中に文字列を挿入

    こんにちは。プログラミング初心者で、初めて質問させていただきます。勉強中に思ったのですが、 ファイルの書き込みについてなのですが、あるファイルに既にデータがあり、その先頭部分(あるいは途中)にある文字列を追加挿入しなければならなくなった場合どういった処理をすることになるのでしょうが? fseekなどで場所を指定して書き込んでしまうと、そこの文字列が上書きされてしまうと思うのですが。

  • テキストファイルに固定文字挿入

    テキストファイル"A.csv"があります。 3個目の「,」の後に数字6桁が入っています。 他の項目は桁数可変ですが、この部分は6桁固定です。 ex. あああああ,AAA,090523,ああああああ いい,BBBBB,090101,いいいい この"090523"を"09/05/23"と置換(2桁おきに"/"を挿入)したいのですが、スキルがないため方法がわかりません。 すでにあるファイルを処理するのであれば、Excel読み込み後に置換処理などでなんとかなると思いますが、日次で毎日ファイルが作成されるため、自動的に処理したいのです。 VBS、バッチなどのプログラムで一括で処理できないでしょうか。 お力添えをいただければありがたいです。 よろしくお願いいたします。

  • EXELで文字列の先頭に文字を挿入したい(置換)

    EXEL2003です。 セルに文字列が並んでいます。 それの先頭にある文字を挿入するにはどうしたらよいのでしょうか? 「置換」で先頭とか、末尾を指定する方法がありますか? よろしくお願いします。

  • Access2007のテキストボックスへの文字の自動挿入について

    Access超初心者です。 Access2007を使用して製造製品の仕様のテーブルを作成しているのですが、 例えば、テキストボックスに… 「テレビ」「エアコン」「携帯電話」 などの文字を入力した際に、 「◆テレビ」「◆エアコン」「◆携帯電話」 という風に、単語の先頭に記号を自動的に挿入したい場合はどのような書式設定をすればいいのでしょうか? 仕事で急きょ製品仕様データを作成しなければならず、困っております。何卒宜しくお願い致します。

  • TextBoxで、選択した行の各先頭に文字を挿入

    こんにちは、Visual Basic 2005 Express Editionで勉強中で、テキストエディタををつくっています。 私がお聞きしたいのはタイトルにもありますが、選択した複数の行の各先頭に記号(')を挿入する方法です。出来れば選択範囲が行の途中から途中まででも、1文字でも入っている行の先頭に記号を挿入できるようにしたいです。 どうぞよろしくお願いします。

  • ファイルメーカーのテキスト挿入について

    質問させてください ファイルメーカーの6をウインドウズXPで使用しています。 テキスト挿入のスプリクトをつくりボタンを押すと フィールドに数字を挿入できるボタンを 「0~9 . 」と作っています。 ただこのボタンは1つのフィールドにしか挿入できません。 一組のボタン(スプリクト)で複数のフィールドを選択して共用できる方法はないでしょうか? つまり1つのレコードに フィールド1~フィールド10まで 数値を入力したいフィールドがあります。 この10個のフィールドにそれぞれ「0~9 .」の テキスト挿入するボタン10組を作るという作業はできるのですが もしひとつの1組のボタンでファールド1~10を 選択して数値を入力できる方法があれば教えてください。

このQ&Aのポイント
  • プロバイダーの変更後、DCP-J978Nの操作ができなくなりました。
  • ネットワーク設定リセットやドライバーの再インストールを試しましたが、製品が見つかりません。
  • 無線LAN接続と有線接続を試しましたが、どちらでも製品が検出されませんでした。
回答を見る