【问题标题】:Save array data in flat file [closed]将数组数据保存在平面文件中[关闭]
【发布时间】:2013-09-19 06:32:47
【问题描述】:

我的数据库中有一个名为ip_management.id_address 的列。我想选择所有 IP 地址并将它们保存在一个平面文件 (.txt) 中。我尝试先将它们放入数组中,然后将其保存到文本文件中。

这是我的代码:

$query = "SELECT ip_address FROM ip_management";
$result = mysql_query($query);
$result_array = array();
while($row = mysql_fetch_assoc($result)) {
    $result_array[] = $row;
}                 
print_r($result_array);
$file_handle = fopen($create_name, 'w') or die("Error: Can't open file");
foreach($result_array as $key => $value) {
    fwrite($file_handle,$value."|");
}

但我在我的文本文件中得到了这个结果:

Array|Array|Array|...

我希望 IP 地址出现在我的文本文件中,如下所示:

10.10.10.10|11.11.11.11|12.12.12.12|...

我的代码有什么问题?

【问题讨论】:

  • print_r ($result_array); 的结果?
  • 尽可能避免使用mysql_* 函数,它们是deprecated since PHP 5.5,它们将在以后的版本中被删除。

标签: php arrays flat-file


【解决方案1】:

您要将数组的 ip 地址元素写入文件,而不是整行。

所以更改写入文件的代码:

fwrite ($file_handle, $value['ip_address'] . '|');

【讨论】:

  • tq...效果很好!!
【解决方案2】:

请使用以下代码,我做了一些更改,它也减少了您的代码行

<?php

$query = "SELECT ip_address FROM ip_management";
$result = mysql_query($query);

while($row = mysql_fetch_array($result)) {
    $str.=$row['ip_address']."|";
}                 

$file_handle = fopen($create_name, 'w') or die("Error: Can't open file");
fwrite($file_handle,$str);
fclose($file_handle);

?>

【讨论】:

    【解决方案3】:

    改变这一行:

     { $result_array[] = $row; }
    

     { $result_array[] = $row['ip_address']; }
    

    【讨论】:

      猜你喜欢
      • 2013-02-07
      • 2014-01-18
      • 2018-02-21
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 2012-05-26
      • 2010-09-24
      相关资源
      最近更新 更多