gpt4 book ai didi

php 输出带有记录限制的 txt 文件并按唯一的县名称分组

转载 作者:行者123 更新时间:2023-11-30 01:31:15 25 4
gpt4 key购买 nike

当我输出这些 txt 文件时,我尝试按唯一的县对它们进行分组,每个县文件有计数限制。例如,假设查询在此可访问结果字段中返回 2 个唯一的县:$row['county_txt'].. 假设我将 $per_file 限制设置为 2500 .我的脚本现在可以与 per_file 等一起使用,但不能与县分组一起使用。下面是我所处位置的一些混杂。感谢您帮助我解决此问题的任何指导。

输出示例:

<小时/>

格林县 - 格林县总计结果 2900 输出将是 2 个文件。

输出文件为:

绿色-#1-20130627-2500.txt
绿色-#2-20130627-400.txt

<小时/>

Red County - Red County 总计结果 12650 输出将是 5 个文件。

输出文件为:

红色-#1-20130627-2500.txt
红色-#2-20130627-2500.txt
红色-#3-20130627-2500.txt
红色-#4-20130627-2500.txt
红色-#5-20130627-150.txt

<小时/>
... // earlier part of script
// Functions I've been attempting

$county[] = $row['county_txt'];

function unique_county() {
foreach($county as $unq_cnty) {
echo $unq_cnty;
return $unq_cnty;
}

}

function get_unique_county() {
$column = array();
while($row = mysql_fetch_array($result)){
$column[] = array_unique($row['county_txt']);
echo $column;
}
}

get_unique_county();

$file_count = 1;
$recs = 0;
$per_file = 2500;
$footer = "FOOTER";
$default_contents = $contents = array("BODY CONTENT TOP");

while ($row = mysql_fetch_array($result)) {
$line = "...";
$contents[] = $line; // Each array element will be a line in the text file
$i++;
$recs++;

if ($county == $unq_cnty && $i == $per_file) {
$contents[] = $footer; // Add the footer to the end
file_put_contents($unq_county . "-#" . $file_count . "-" . date('Y') . "-" . $recs . '.txt', implode("\r\n", $contents));
$i = 0;
$recs = 0;
$contents = $default_contents;
$file_count++;
} // End of if()
} // End of while()

最佳答案

您需要一个计数器,然后能够重置它(重置后,您保存文件)。

示例(未经测试,仅示例):

<?php
$rowCounter = 0;
$fileCounter = 1;
$startID = md5(microtime(1));
$fp = fopen("{$startID}.txt", "w");
while ($row = mysql_fetch_array($result)) {
$rowCounter++;
fwrite($fp, $row['county_txt']."\r\n");
if($rowCounter == 2500) {
fclose($fp);
if($startID) {
rename("{$startID}.txt", "Red-#{$fileCounter}-".date("Ymd")."-{$rowCounter}.txt");
$startID = md5(microtime(1));
}
$fp = fopen("{$startID}.txt", "w");
$rowCounter = 0;
$fileCounter++;
}
}
// Save last file
fclose($fp);
rename("{$startID}.txt", "Red-#{$fileCounter}-".date("Ymd")."-{$rowCounter}.txt");
?>

注意,不要使用 mysql_* 函数。相反,至少使用 mysqliPDO

关于php 输出带有记录限制的 txt 文件并按唯一的县名称分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17431936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com