質問 |
||
| QNo.4148140 | 独自INIファイルの操作をしたいんですが | |
|---|---|---|
| 質問者:maki_hiro |
phpでaaa.iniの操作をしたいのですが 例えば [section] key1=aaaaa の「aaaaa」を書き換えたいのです。 (力量不足もありますが) 項目が複数あるので単純なfwriteでは対応できそうになく 出来れば win32apiのWritePrivateProfileStringのような 動かし方が出来ればいいのですが 読み込みは parse_ini_fileで出来そうなのですが 更新の方は方法が見つからなくて よろしくお願いします。 |
|
困り度:
|
||
| 質問投稿日時: 08/07/03 13:42 |
||
回答良回答20pt |
|
| ANo.2 | 書き換えるファイル(いわゆるデータ)ならコメントが入れないほうがいい気がします。コメントはそのデータの補足というか説明ですし、それなら別途説明書ファイルでも同じディレクトリにおいておけばいいんじゃないでしょうか。 とりあえず既存の関数ではできなさそうなので、自分で作らないといけないですが、個人的にはSAYKAさんのおっしゃるように、parseして変更した物を、そのまま書き出すのが一番現実的かと。 もしどうしてもコメントを残したままやりたいなら、 どうにかして、コメント部分とその位置を抜き出して、それもいっしょに書き込む。 もしくは、 変更部分だけど書き直す、 key1=aaaaa を key1=bbbbb にしたいなら 変更部分の「変更前」と「変更後」をそれぞれ保存しておいて、 $filedata = file_get_contents("file.ini"); $filedata = str_replace("key1=aaaaa","key1=bbbbb",$filedata); file_put_contents("file.ini",$filedata); という感じでしょうか。 私ならもっと柔軟性のあるXMLにしたいところ。 |
|---|---|
| 回答者:SHlVA | |
| 種類:アドバイス どんな人:専門家 自信:参考意見 |
|
| 回答日時: 08/07/13 07:50 |
|
| |
| この回答へのお礼 | 他の(phpでない)ソフトとの連動があって iniファイルであることが先に確定しちゃってるもので。。。 やっぱ書き戻す方法しかなさそうですね。 SHlVAさんの方法をとらせてもらおうと思います。 |
回答良回答10pt |
|
| ANo.1 | iniファイルの場所が判ってるんだし 書式も複雑なわけじゃないし 普通にテキストファイルとしてparseした情報を書き出したら良いんじゃない? |
|---|---|
| 回答者:SAYKA | |
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/07/03 15:35 |
|
| |
| この回答へのお礼 | 説明不足でした。 parseした情報は INIファイル内に入れてあっるコメントは取らないですよね? ですので parseした奴を書き戻すとコメントが消えちゃうんですよ。 すみませんが 他に、いい方法があったらよろしくお願いします。 |