我需要断行我在浏览器中输出输出,但在下载txt
文件时它不在文本文件中。
主要是我需要这种输出
4,
Firstname lastname,address,
orderid,product name ,
eof
4,
Firstname lastname,address,
orderid,product name ,
eof
以上输出我在浏览器中得到它但是当我下载带有header()的txt
文件时输出将如下所示
4,Firstname lastname,address,orderid,product name ,eof,4,Firstname lastname,address,orderid,product name ,eof,
另一个奇怪的事情是,当我连接网站的fttp并从那里下载txt
文件时,它将显示我需要的正确格式但是当我使用header()时它会弄乱我的txt
文件格式
任何人都可以告诉我我的代码在下面的原因
<?php
include('wp-load.php');
generate_csv();
function generate_csv()
{
global $wpdb;
$Query = "SELECT posts.ID
FROM {$wpdb->posts} AS posts
LEFT JOIN {$wpdb->term_relationships} AS rel ON posts.ID=rel.object_ID
LEFT JOIN {$wpdb->term_taxonomy} AS tax USING( term_taxonomy_id )
LEFT JOIN {$wpdb->terms} AS term USING( term_id )
WHERE posts.post_type = 'shop_order'
AND posts.post_status = 'publish'
AND tax.taxonomy = 'shop_order_status'
AND term.slug NOT IN ('completed')";
//$Query = "SELECT order_id FROM wp_woocommerce_order_items";
$ResultQuery = mysql_query( $Query );
$Orders = array();
while($ResultArray = mysql_fetch_assoc($ResultQuery))
{
$Orders[] = $ResultArray['ID'];
}
/*$list = array (
array('4')
);*/
foreach($Orders as $Order)
{
$OrderReport = new WC_Order($Order);
$Query = "SELECT user_id FROM wp_usermeta WHERE meta_key = 'first_name' AND meta_value = '".$OrderReport->shipping_first_name."'";
$QueryGetUserId = mysql_query($Query);
$GetUserId = mysql_fetch_assoc($QueryGetUserId);
$Items = $OrderReport->get_items();
foreach($Items as $Item)
{
$ProductID = $Item['product_id'];
$ProductQTY = $Item['qty']; //
}
if($ProductID=='188' or $ProductID=='205')
{
if($ProductID=='188')
{
$ProductID='118945-5';
}
if($ProductID=='205')
{
$ProductID='118946-3';
}
$GetUserId_csv='42069';
$list .= '4'.PHP_EOL .$GetUserId_csv.' '.$OrderReport->id . ',' . ',' . 'FIL' .','.PHP_EOL . '' .$OrderReport->billing_first_name .' '. $OrderReport->billing_last_name . ','. $OrderReport->shipping_address_1 .','. $OrderReport->shipping_address_2 .','. $OrderReport->shipping_city.','.$OrderReport->shipping_state.','.$OrderReport->shipping_postcode.','.$OrderReport->billing_phone.','.'A'.','. 5001 .',' .PHP_EOL . ''. $ProductID .' ,' . ', '. $ProductQTY . ',' . ',' . ','.PHP_EOL .'***EOF***'.PHP_EOL;
//$list[]=array('***EOF***');
}
$CSVFile = time().'.txt';
$fp = fopen( $CSVFile, 'w');
fwrite($fp,$list);
fclose($fp);
}
$path = site_url( '/', 'relative')."/";
$file = $path.$CSVFile;
//sleep(10);
output_file($CSVFile,$CSVFile, 'text/plain'); //this is the function which help me to download the txt file
}
?>
// function of out_file is below
function output_file($Source_File, $Download_Name, $mime_type='')
{
/*
$Source_File = path to a file to output
$Download_Name = filename that the browser will see
$mime_type = MIME type of the file (Optional)
*/
if(!is_readable($Source_File)) die('File not found or inaccessible!');
$size = filesize($Source_File);
$Download_Name = rawurldecode($Download_Name);
/* Figure out the MIME type (if not specified) */
$known_mime_types=array(
"pdf" => "application/pdf",
"csv" => "application/csv",
"txt" => "text/plain",
"html" => "text/html",
"htm" => "text/html",
"exe" => "application/octet-stream",
"zip" => "application/zip",
"doc" => "application/msword",
"xls" => "application/vnd.ms-excel",
"ppt" => "application/vnd.ms-powerpoint",
"gif" => "image/gif",
"png" => "image/png",
"jpeg"=> "image/jpg",
"jpg" => "image/jpg",
"php" => "text/plain"
);
if($mime_type==''){
$file_extension = strtolower(substr(strrchr($Source_File,"."),1));
if(array_key_exists($file_extension, $known_mime_types)){
$mime_type=$known_mime_types[$file_extension];
} else {
$mime_type="application/force-download";
};
};
@ob_end_clean(); //off output buffering to decrease Server usage
// if IE, otherwise Content-Disposition ignored
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
header('Content-Type: ' . $mime_type);
header('Content-Disposition: attachment; filename="'.$Download_Name.'"');
header("Content-Transfer-Encoding: binary");
header('Accept-Ranges: bytes');
header("Cache-control: private");
header('Pragma: private');
header("Expires: Thu, 26 Jul 2012 05:00:00 GMT");
// multipart-download and download resuming support
if(isset($_SERVER['HTTP_RANGE']))
{
list($a, $range) = explode("=",$_SERVER['HTTP_RANGE'],2);
list($range) = explode(",",$range,2);
list($range, $range_end) = explode("-", $range);
$range=intval($range);
if(!$range_end) {
$range_end=$size-1;
} else {
$range_end=intval($range_end);
}
$new_length = $range_end-$range+1;
header("HTTP/1.1 206 Partial Content");
header("Content-Length: $new_length");
header("Content-Range: bytes $range-$range_end/$size");
} else {
$new_length=$size;
header("Content-Length: ".$size);
}
/* output the file itself */
$chunksize = 1*(1024*1024); //you may want to change this
$bytes_send = 0;
if ($Source_File = fopen($Source_File, 'r'))
{
if(isset($_SERVER['HTTP_RANGE']))
fseek($Source_File, $range);
while(!feof($Source_File) &&
(!connection_aborted()) &&
($bytes_send<$new_length)
)
{
$buffer = fread($Source_File, $chunksize);
print($buffer); //echo($buffer); // is also possible
flush();
$bytes_send += strlen($buffer);
}
fclose($Source_File);
} else die('Error - can not open file.');
die();
}
答案 0 :(得分:0)
尝试\ n而不是文本文件的EOL。
答案 1 :(得分:0)
您可以尝试\ r \ n而不是\ n。