0

每次数据库中有条目时,我都会使用 file_put_content 将数据写入文件中。它没有附加新条目,而是用新条目覆盖旧数据。这是我正在使用的代码的一部分。我尝试使用 APPEND In 标志但不起作用。`

  include_once(CLASS_PATH."fetch_service.php"); 
  $objfetch = new fetchService();


  $res = $objfetch->fetch_proxy("*","where account_id='".$_SESSION['account_id']."'");
  foreach($res as $result)
  {
  $proxyname=$result['proxyname'];
  $ip=$result['proxyip'];
  $proxyport=$result['port'];
  $proxyuser=$result['username'];
  $proxypwd=$result['password'];
  $proxydomain=$result['domain'];
  $account_id=$result['account_id'];


  $content2 = "";
  $content2 .= ";/*----*-------------------*----------"."\n";
  $content2 .= "; * Created On ".date("Y-m-d")."\n";
  $content2 .= "; * Adding Proxy"."\n";
  //                $content2 .= "; * By ".$_SESSION['username']."\n";
  $content2 .= "; *----*-------------------*----------"."\n\n";



  $content2 .="[$proxyname]"."\n"; //context Name//
  $content2 .="username=$proxyuser"."\n";
  $content2 .="secret=$proxypwd"."\n";
  $content2 .="fromdomain=$proxydomain"."\n";
  $content2 .="host=$ip"."\n";
  $content2 .="port='$proxyport'"."\n";


  $content2 .="canreinvite=yes"."\n";
  $content2 .="nat=force_rport,comedia"."\n";
  $content2 .="type=peer"."\n";
  $content2 .="disallow=all"."\n";
  $content2 .="allow=g729"."\n";
  $content2 .="allow=ulaw"."\n";
  $content2 .="allow=alaw"."\n";


  $file2 = 'trunk_test.conf';
  error_log("======FILE path ====$file2======");
  file_put_contents($file2, $content2, LOCK_EX);




  }

  }
  ?>      `
4

2 回答 2

5

如果要将新数据附加到文件中

你应该使用这个标志

// this will append the content to the end of the file, 
// and prevent anyone else writing to the file at the same time
file_put_contents($file2, $content2, FILE_APPEND | LOCK_EX); 
于 2015-11-16T08:09:49.837 回答
0

将下面的代码放在foreach(){ //your code for getting data and put into single variable }. 从内部 foreach 中删除相同的内容并删除$content2 = "";

$file2 = 'trunk_test.conf';
error_log("======FILE path ====$file2======");
file_put_contents($file2, $content2, LOCK_EX);
于 2015-11-16T07:58:16.633 回答