Ben söyledim CURLOPT_RETURNTRANSFER
aracılığıyla bir dizeye çıktı göndermek için söyledim zaman olduğu gibi PHP cURL CURLOPT_FILE
aracılığıyla bir dosyaya çıktı farklı veri döndüren fark etmişsinizdir.
_RETURNTRANSFER
standart HTML kodu olarak göstermek için bunu ayrıştırma gibi satırsonlarını ve ekstra beyaz boşluk şerit görünüyor. _FILE
diğer taraftan amaçlandığı tam olarak dosya korur.
Ben php.net üzerinde belgelerine okudum ama benim sorunu çözmek gibi görünüyor şey bulamadı. İdeal olarak, var ben bir ara dosya ortadan böylece _RETURNTRANSFER
tam içeriğini dönmek, ama bu mümkün hale herhangi bir şekilde görmüyorum istiyorum.
İşte ben kullanıyorum kodudur. Söz konusu veriler \ r \ n satır sonları ile bir CSV dosyası.
function update_roster() {
$url = "http://example.com/";
$userID = "xx";
$apikey = "xxx";
$passfields = "userID=$userID&apikey=$apikey";
$file = fopen("roster.csv","w+");
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $passfields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FILE, $file);
$variable_in_question = curl_exec ($ch);
curl_close ($ch);
fclose($file);
return $variable_in_question;
}
Çıkıyor, hata iade ediliyordu ne değil, ama bir şekilde bunu ayrıştırma hakkında gidiyordu. \ R \ n tek tırnak koyduğunuzda benim sorunum çözüldü çift tırnak geçiş, beklenen şekilde değil ayrıştırılır. Ben bunun gibi bir fonksiyon çağrıları içinde bir fark yarattı farkında değildi.
Bu sadece iyi çalışır: $cresult = split("\r\n", $cresult);
Bu etmez: $cresult = split('\r\n', $cresult);