لماذا أتلقى HTML في بلدي الخلية التصدير إلى CSV؟

StackOverflow https://stackoverflow.com/questions/207019

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا أعلم وقد طلب هذا السؤال من قبل، لكنني واجهت مشكلة.

والغريب، وعندما تنفيذ هذه المهمة، فإنه يشمل هتمل من الصفحة التي الرابط الذي حدد لتنفيذ المهمة.

function exportCSV($table) {
    $result = mysql_query("SHOW COLUMNS FROM ".$table."");
    $i = 0;
    if (mysql_num_rows($result) > 0) {
        while ($row = mysql_fetch_assoc($result)) {
            $csv_output .= $row['Field']."; ";
            $i++;
        }
    }
    $csv_output .= "\n";

    $values = mysql_query("SELECT * FROM ".$table."");
    while ($rowr = mysql_fetch_row($values)) {
        for ($j=0;$j<$i;$j++) {
            $csv_output .= $rowr[$j]."; ";
        }
        $csv_output .= "\n";
    }

    $filename = $file."_".date("Y-m-d_H-i",time());
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: csv" . date("Y-m-d") . ".csv");
    header( "Content-disposition: filename=".$filename.".csv");
    print $csv_output;
    exit;
}

لا أحد يعرف ماذا سيكون تشمل HTML في ملف CSV؟ بديل النص http://i35.tinypic.com/16i9oxi.jpg

هل كانت مفيدة؟

المحلول

وتخميني هو أن كنت قد حصلت على نوع من القالب الذي يولد نفس رأس وتذييل HTML بغض النظر عن الصفحة التي يتم طلبها. في وقت ما قبل يتم استدعاء الدالة exportCSV، يتم إنشاء الرأس.

وأنت لا تظهر أسفل الإخراج، ولكن أراهن تذييل هناك أيضا، منذ أظن ستواصل التحكم في التدفق إلى هذا الرمز بعد إنهاء المهمة.

نصائح أخرى

وفب ليس حقا لي شيء، ولكن يبدو أن تحتاج إلى مسح دفق استجابة قبل كتابة من المحتوى الخاص بك. ربما شيء آخر هو كتابة أتش تي أم أل إلى تيار، قبل الوصول إلى هذه الوظيفة؟ مثل صفحة القالب أو الماجستير أو شيء من هذا القبيل؟

ومحتوى HTML يشبه شريط رأس / الملاحة نموذجي. إذا كان هناك شيء آخر وهذا ما بما في ذلك تلقائيا أن المحتوى الذي تحتاج إلى تعطيل لهذا الطريق؟

ولقد حصلت مشكلة التحكم في التدفق في مكان ما - على ما يبدو من جانب رئيس أتش تي أم أل ويتم تضمين التنقل بشكل افتراضي في أي صفحة، بما في ذلك تلك التي يولد CSV. ويتمثل أحد الحلول يتمثل في التحقق من وجود طلب CSV وإذا كان هذا هو الحال، لا تشمل الكود، واحد آخر يتمثل في استخدام الناتج التخزين المؤقت ومن ثم تجاهل كافة الإخراج السابق الحق قبل إخراج البيانات CSV.

وأقترح تهيئة المتغير csv_output إلى سلسلة فارغة في بداية طريقتك. جميع العمليات الخاصة بك في طريقة هي تسلسالت، حتى تتمكن من المرجح يصل طول بعض البيانات القديمة.

يرجى نعتبر أن كنت تظهر يحتمل أن تكون البيانات الحساسة للعالم كله. كنت قد حصلت على أكثر من عشرة أشخاص الذين لديهم الآن البريد الإلكتروني والشارع عناوينهم نشرت.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top