PHP Создание файла для отправки, выходной буфер уже отправлен? - PullRequest
0 голосов
/ 28 февраля 2012

Эй, ребята, я написал функцию для вытеснения файла json, но похоже, что буфер каким-то образом объединяет файл. Обычно это должен быть просто объект JSON, но выглядит как сама страница вставляется в файл?

 [{"key":"16","role":null,"region":"Great White North","inspection_type":"citrus","inspection_number":"996","customer_number":"206-420-9564","report_date":"2012-10-21","status":"1","order_date":"2012-02-23 15:24:34","customer":"Jd Daniel","customer_division":"Field worker","memo":null,"billing_key":null,"report_key":"996","shipper":"Hanjin","po":"33215","location":"Boulder, CO","inspector":"Newman","commodity":"Apples","count":"32","size":"medium","label":"Granny Smith","variety":"Golden","pack_date":"0000-00-00","grower_lot":"Lots to grow","color1":"4","color2":"15","texture1":"","texture2":"","puff1":"","puff2":"","scar1":"","scar2":"","solidity1":"","solidity2":"","green1":"","green2":"","sugar_brix1":"","sugar_brix2":"","rating":"0","comments":"Comments 1"},{"key":"17","role":null,"region":"Great White North","inspection_type":"citrus","inspection_number":"996","customer_number":"206-420-9564","report_date":"2012-10-21","status":"0","order_date":"2012-02-23 15:24:34","customer":"Jd Daniel","customer_division":"Field worker","memo":null,"billing_key":null,"report_key":"996","shipper":"Jiun Ming","po":"4215","location":"South Holywood","inspector":"Gadget","commodity":"Grapes","count":"29","size":"46","label":"sweet","variety":"green","pack_date":"0000-00-00","grower_lot":"","color1":"","color2":"","texture1":"","texture2":"","puff1":"","puff2":"","scar1":"","scar2":"","solidity1":"","solidity2":"","green1":"","green2":"","sugar_brix1":"","sugar_brix2":"","rating":"0","comments":"Comments 2"}]
    <!DOCTYPE html>
    <html lang="en-US">
        <head>
         <title> </title>

         <script src='http://www.google.com/jsapi'></script>
         <script> google.load('jquery', '1.7.1'); </script>

        <style type="text/css">
        body {font-family: arial;}
         p, ul {width:100%; text-align:left;font-size:80%;}
         .reports_box {width:auto; padding:25px 20px 20px 20px;border:1px solid #91bce6;background-color:#eff5fb;}
         input {width:121px; font-size:15px;padding:5px;}
         .check input {padding:0 !important;}
         .caps {text-transform:capitalize;}

Странно, верно? Я не могу заставить буферы очищаться правильно, чтобы удалить это, и я надеюсь на лучший способ заставить это работать. Вот моя функция.

function getReportDown($array) {
unset($array['select']);

$cleanArray = filter_var_array($array ,FILTER_SANITIZE_STRING); 

$array=array(); // needs to be secured -jd
foreach($cleanArray as $k=>$v) {
  if(strpos($k,'find_') === false) { 
    $array[] = explode(':',$k); }
}

    require('perms.php.inc');
    require('dbconnect.class.inc');

    $dbc = Database::obtain(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    $dbc->connect();

    $form=array();
    foreach($array as $key=>$val) {
        $form[] = array_pop($dbc->fetch_array("SELECT * FROM reports JOIN ( SELECT * FROM `{$val[0]}` WHERE `key` = {$val[1]}) fruits ON inspection_number = fruits.report_key ORDER BY report_date DESC"));
    }

    $dbc->close();

    $rand = randomAlphaNum(10).'.json';

    header("Content-type: application/json");
    header("Content-disposition: attachment; filename=$rand");
    header('Content-Transfer-Encoding: binary');
    echo json_encode($form);

    //unlink($rand);

}

1 Ответ

0 голосов
/ 28 февраля 2012

exit или die после того, как вы повторили JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...