php fopen w会讲文件内容删除吗,PHP fopen包含不需要的内容

当然,经过几个小时的思考,我的问题的第一个评论让我立即解决。

问题在于,尽管我在页面顶部将自己的代码包含在自己的函数中,但只有在$ _POST数组中设置了某个标志时,我才会调用它。我直到PHP文件结束时才检查标志。我在该功能之前移动了该检查,并且它工作正常。

原始问题如下:

我试图在PHP中使用fopen()函数输出一个CSV文件,虽然它包含我想要的数据,但它还包含页面的整个HTML结构以及内联样式表,实际上想要输出。

我使用这个代码(来自here)几乎没有改变。我对PHP的流式传输和输出非常不熟悉,所以我从我希望的坚实基础开始:

$fileName = 'somefile.csv';

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header('Content-Description: File Transfer');

header("Content-type: text/csv");

header("Content-Disposition: attachment; filename={$fileName}");

header("Expires: 0");

header("Pragma: public");

$fh = @fopen( 'php://output', 'w' );

global $wpdb;

$query = "SELECT * FROM `{$wpdb->prefix}my_table`";

$results = $wpdb->get_results( $query, ARRAY_A );

$headerDisplayed = false;

foreach ( $results as $data ) {

// Add a header row if it hasn't been added yet

if ( !$headerDisplayed ) {

// Use the keys from $data as the titles

fputcsv($fh, array_keys($data));

$headerDisplayed = true;

}

// Put the data into the stream

fputcsv($fh, $data);

}

// Close the file

fclose($fh);

// Make sure nothing else is sent, our file is done

exit;我的假设是,这个例子打算被包含在它自己的外部PHP文件中,但由于我处理的约束,我试图将它包含在内联中。我用输出缓冲了一下,但没有获得积极的结果,但是这些PHP文档相当稀少,所以可能会丢失一些东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值