【问题标题】:trouble with php flatfilephp平面文件的问题
【发布时间】:2014-01-09 22:02:52
【问题描述】:

所以我试图写入一个平面文件。每次满足特定标准时,都会写入数据库中的一个单词。问题是脚本运行后,文件中只显示符合条件的最后一个单词。显然,这些单词正在被写入,然后被下一个单词覆盖。我怎样才能解决这个问题?我希望每个单词都写到自己的行中。这是我的代码。

<?php

include 'special.class.php';
require 'db_config.php';


$result = mysql_query("SELECT * FROM words limit 0, 30") or die ("Could not make query");

while($row = mysql_fetch_array($result))
{
$word = $row['result'];



$special_word = new word_stuffs( $word);

if ($special_word>is_special()) {


     $File = "words.txt"; 
     $Handle = fopen($File, 'w');
     $Data = $word; 
     fwrite($Handle, $Data);
     fclose($Handle); 

} else {
    echo "Not special!!";
}

}

?>

【问题讨论】:

  • 我建议在您的 while 循环之前打开文件并在之后关闭它。这样,您就不必为每个特殊单词不断打开和关闭文件。

标签: php flat-file


【解决方案1】:
 $Handle = fopen($File, 'a');

而不是

 $Handle = fopen($File, 'w');

【讨论】:

  • 或者在while循环之前打开文件,之后关闭,而不是每次迭代都打开再关闭
  • @MarkBaker 是的,这样会更好。
  • 我同意马克的观点,只打开一次文件,将所有数据写入其中,然后关闭它会为您节省大量处理。
  • 我会缓冲数据并定期将其刷新出来,而不是等到最后转储它,但这很有效。是的,避免不必要的打开/关闭循环。
  • 很好,你们很棒。等等,我如何让每个人都走自己的路?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
相关资源
最近更新 更多