次のような情報を含むファイルがあります。
IP=121.0.0.1 Status=On Name=Name
IP=121.0.0.1 Status=On Name=Name
IP=121.0.0.1 Status=On Name=Name
IP=121.0.0.1 Status=On Name=Name
IP=127.0.0.1 Status=On Name=Name
IP=121.0.0.1 Status=On Name=Name
IP=121.0.0.1 Status=On Name=Name
IP=121.0.0.1 Status=On Name=Name
このファイルの情報を更新するにはどうすればよいですか? たとえば、ローカルホスト IP でステータスをオフに設定し、名前をテストするなどして行を更新するにはどうすればよいでしょうか。私が試したのは、IP アドレス (この場合はローカルホスト - 127.0.0.1) で変更する行を見つけて、値を置き換えることです。 Status= を Offstr_replace()
などに変更します。しかし、もう一度 On に戻そうとすると、別の行が上書きされたり、空の行が作成されたり、さらに情報が追加されたりします。
私が試したコード:
<?php
$file = fopen('user_info.wrd','r+');
while (!feof($file))
{
$str=fgets($file);
if (strstr($str,$_SERVER['REMOTE_ADDR']))
{
$Status=substr($str,strpos($str,'Status=')+7);
$Status=substr($Status,0,strpos($Status,' '));
fseek($file,(ftell($file)-strlen($str)));
$str=str_replace($Status,'Off',$str);
echo $str;
$str=trim($str);
fwrite($file,$str);
fclose($file);
die;
}
}
?>