Ben veri MySQL veritabanı kapmak için hangi seçtikten sonra bir excel dosyası oluşturmak için bir post formu kullanmaya çalışıyorum. Tek bir düğme ile, Excel dosyası oluşturmak için alanlar kullanılır edildiği herhangi ayarları kaydetmek için birinci ve ikinci: ben aslında-postayı çift istiyorum çünkü cURL kullanıyorum.
Ben sekme ayrılmış içeriği basit bir Excel dosyası (sadece basit tutarak, alanlarında / satır sonları veya sekmeler w ilgili değil) oluşturmak için doğru başlıkları ile kurulmuş bir PHP sayfası var. Ben (ve PHP kukla veri içerir) tarayıcı ile direkt o sayfayı isabet ederse, benim tarayıcı bir Excel dosyasını indirir.
(? Ben cURL yoluyla başlıklarını göndermek yoksa -) Ben cURL posta yoluyla bu sayfaya aracılığıyla veri alıyorum.
Ve burada kaybolmak nerede hakkında:
Nasıl yaratabilir / cURL üzerinden bir Excel dosyası olarak veri indirme?
Bu başlıklarının / w yapmak için bir şey benim tahminim mi?
PHP başlıklarını ayarlama oldukça iyi çalıştı:
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel; charset=UTF-8");
header("Pragma: public");
header("Cache-control: max-age=0");
Ben yerine cURL üzerinden onları ayarladığınızda, (iyi, bunlar benim cURL tüm seçenekleri) yaptım:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $foo);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Disposition: attachment; filename=test.xls',
'Content-Type: application/vnd.ms-excel; charset=UTF-8',
'Pragma: public',
'Cache-control: max-age=0'
));
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$response_code = curl_exec($ch);
if ($response_code!== false) {
echo 'response: '.$response_code;
} else {
echo 'error: '.curl_error($ch);
}
curl_close ($ch);
Bunu yaptığınızda, ben gönderme sayfada almak cURL $ RESPONSE_CODE (Ben satırları kırık ettik - hepsi tek bir satır var) bu gibi görünüyor:
HTTP/1.1 200 OK
Date: Sun, 31 Jan 2010 20:43:38 GMT
Server: Apache
Transfer-Encoding: chunked
Content-Type: text/html
Ben cURL üzerinden başlıklarını dahil olmadığı zaman, $ _POST çalışıyor. Ben başlıklarını içeren yaptığınızda Ancak, $ _POST çalışmaz.
İşte Transfer-Encoding: chunked
bir ipucu gibi görünüyor. Ama ilk araştırma bahsettiğim gibi, ben kayboldum kısmen, çünkü, bana yardım etmedi.
Herhangi bir fikir?
Thank you!
-Jeremy