• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【PHP】 記事の削除について(ログの一部を削除))

【PHP】記事削除方法とログファイルの元の書き換えについて

このQ&Aのポイント
  • PHPを使用してログファイルから記事を削除する方法について教えてください。
  • 削除したい記事番号を選び、削除キーを押すと選んだ記事番号の記事が削除されます。
  • また、記事削除の処理が完了した場合、ログファイルを元の状態に書き換える方法も教えてください。

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

  • ベストアンサー
回答No.2

#1です。微妙に誤りが。。。。 $delkey = $_REQUEST["delkey"]; $data = file("log.txt"); $fp = fopen("log.txt","w"); for($i=0; $i<sizeof($data); $i++){ list($no,$name,$body) = explode( " " , $data[$i]); if($no != $delkey){ fputs($fp,$data[$i]); } } fclose($fp); file()でメモリ上に全データを読込み、$no != $delkeyのとき、だけlog.txtに上書きします(一致する場合はスルー)。そうすれば結果的に削除された物は記録されません。

zin_orz_l
質問者

お礼

「if($no != $delkey)」の質問につきまして… $no と $delkey が等しくないならば…と言う意味ですね。 改めて、上書きについては有り難う御座いました。

zin_orz_l
質問者

補足

この度は、ご回答下さり有り難う御座います。 上書きについては理解できました。 一つ質問なんですが、もし~の条件のところは… 「if($no != $delkey)」と「if($no == $delkey)」これは同じ意味なのでしょうか? 意味が違うとすれば「if($no != $delkey)」は、どう言う意味なのでしょうか? もし宜しければ教えて頂けると助かります。

その他の回答 (1)

回答No.1

あなたの記述を合わせただけです。 $delkey = $_REQUEST["delkey"]; $data = file("log.txt"); $fp = fopen("log.txt","w"); for($i=0; $i<sizeof($data); $i++){ if($no != $delkey){ $ndata = implode( " " , array($no,$name,$body."\n") ); fputs($fp,$ndata); } } fclose($fp);

zin_orz_l
質問者

お礼

taketan_mydns_jpさんからの ANo.2 のご説明を参考に選んだ記事番号の記事を削除する事が出来ました! 私の望むご回答下さり感謝と共に本当に有り難う御座います。 すごく助かりました。とても嬉しく思っています。 また、私が何かPHPの事で質問すると想いますので、私の質問を見かけた際は、是非また宜しくお願い致します。 今回は、本当に的を得たご回答下さりまして有り難う御座いました。

zin_orz_l
質問者

補足

でわ、20pt(良回答)は ANo.2 の方に付けさせて頂きます。 本当に有り難う御座いました。

関連するQ&A

専門家に質問してみよう