我得到了以下php代碼,該代碼當前正在處理一個包含每行(動物>寵物用品>鳥用品)的數據的txt文件和我正在重新格式化它以將其與我的數據庫一起使用。如何將此PHP代碼處理的數據保存爲CSV或TXT文件
我想要做的是將輸出數據保存爲CSV或TXT文件,或者將其保存到我的瀏覽器中,就像它現在一樣。請注意,腳本中有3個打印部分。
任何幫助或建議將不勝感激。
set_time_limit(0);
//read and process txt.txt
$file_handle = fopen("txt.txt", "rb");
$j = 0;
while (!feof($file_handle)){
$line = fgets($file_handle);
$parts = explode('>', $line);
if(count($parts) == 1){
$parts[0] = trim($parts[0]);
$db[$j] = array("CatName"=>$parts[0], "CatID"=>$j+1, "PID"=>0, "Level"=>1);
print $db[$j]["CatName"]."\t".$db[$j]["CatID"]."\t".$db[$j]["PID"]."\t".$db[$j]["Level"]."\r\n";
} else {
$i =0;
$no = count($parts);
$t = $no-1;
while($t != -1){
$parts[$t] = trim($parts[$t]);
$t = $t-1;
}
$k = $j-1;
while($i != $j){
while($k > -1){
if(strcmp($parts[$i], $db[$k]["CatName"]) == 0){
$flag = 1;
}
$k = $k-1;
}
if($flag == 1){
if(strcmp($parts[$no-2], $db[$i]["CatName"]) == 0){
$found = $i;
}
}
$i = $i+1;
}
if($flag == 1){
$db[$j] = array("CatName"=>$parts[$no-1], "CatID"=>$j+1, "PID"=>$db[$found]["CatID"], "Level"=>$no);
print $db[$j]["CatName"]."\t".$db[$j]["CatID"]."\t".$db[$j]["PID"]."\t".$db[$j]["Level"]."\r\n";
}
if($flag == 0 && $no == 1){
$db[$j] = array("CatName"=>$parts[$no-1], "CatID"=>$j+1, "PID"=>0, "Level"=>$no);
print $db[$j]["CatName"]."\t".$db[$j]["CatID"]."\t".$db[$j]["PID"]."\t".$db[$j]["Level"]."\r\n";
}
}
$j = $j+1;
$flag = 0;
}
fclose($file_handle);
BTW:我已經用刺來代替打印語句,然後它們的輸出保存到我的csv文件,但它不會工作,它只返回空值。 例中使用:
//print $db[$j]["CatName"]."\t".$db[$j]["CatID"]."\t".$db[$j]["PID"]."\t".$db[$j]["Level"]."\r\n";
$csv_data .= $db[$j]["CatName"]."\t".$db[$j]["CatID"]."\t".$db[$j]["PID"]."\t".$db[$j]["Level"]."\r\n";
參見[輸出緩衝( http://php.net/manual/en/book.outcontrol.php)。 –
會查看它,但頁面沒有給出一個很好的例子,如何正確使用輸出控制 – luiavag