2016-04-04 14 views
0

Kullanıcı girişlerini şifreleyen ve depolayan bir form var. Daha sonra, bir yöneticinin tüm girişlerin bir csv'sinin şifresini çözmesine ve vermesine izin veren bir dışa aktarma özelliğim var.fputcsv alanların sonuna garip karakterler ekliyor

Düzgün şifresini çözer ve dizimi sayfanın üzerine yazdırdığımda her şey iyi görünüyor, ancak CSV'yi oluşturduğumda, bazı verilerden sonra tek bir sembol ekler, notepad açıldığında veya Excel'de soru işaretleri varsa, Bazı sembollerde müzik sembolleri, elmaslar ve diğer garip karakterler, ama hepsi değil. Bir deseni göremiyorum - başlık alanına "Miss" veya "Mr" eklerseniz karakterleri ekler, eğer adımı eklerseniz (Zoe) olmaz! Verilerim BINARY olarak saklanıyor, ancak bazı alanları VARCHAR olarak değiştirdim ve farketmez, aynı zamanda verilerimi utf8_encoding denedim. Ben her öğe etrafında alıntılar bu onları kopyalamaz olarak tek karakter olmadan obivously olan (tutarsız not defteri açın zaman fark etmiş

header('Content-Type: text/csv; charset=utf-8'); 
header('Content-Disposition: attachment; filename=data.csv'); 

$output = fopen('php://output', 'w'); 
fputcsv($output, array('Title', 'First Name', 'Last Name', 'Address', 'Age', 'Email', 'I am...')); 
$encryption_key = ""; 

//then I do my database select 

foreach ($theresults as $result) { 

//then I decrypt my data and pass it in to variables 

$responses = array($title,$fname,$lname,$address,$age,$emailadd,$who); 
fputcsv($output, $responses); 

} 

Bir şey şudur:

Bu

benim kodudur stackoverflow öğesinde):

Title,"First Name","Last Name",Address,Age,Email,"I am..." 
Miss,Zoe,Tester,,29,,other 
Zoe,Zoe,Zoe,Zoe,29,,other 
Mr,Test,Testington,"an address",35,,diagnosed 

Herhangi bir yardım için teşekkür ederiz, benzer sorunlar içinde hiçbir yerde bulamıyorum!

+1

Ve gerçekten yakından bakarsanız, bu tutarsız tırnakların aralıklı olarak boşluk karakterleri içeren dizeler etrafında olduğunu görürsünüz –

+1

Belki de şifre çözme/şifre çözme bozuk değil, fputcsv'. Verilerinizi yazdırmayı/dökmeyi ve tek karakterleri kontrol etmeyi deneyin. Eğer mevcutlarsa, şifreleme/şifre çözme işleminize (belki bazı doldurma sorunları) bakmanız gerekir. – Furgas

+0

İzleyen boşlukları kaldırmak için birkaç şey denedim ama bu hala olur ... – Zoee

cevap

0

Fputcsv, sınırlayıcı ve kasada daha fazla parametre belirtmeniz gerekir.

fputcsv($output, array(...), ',', '"'); 

sınırlayıcı bir CSV dosyası ';' olmalıdır. Sınırlayıcınız ',' ise, adreslerle ilgili bazı sorunlar alırsınız.

+0

Teşekkürler, bu benim garip karakterler ile sorunumu çözmüyor olsa da, yine de ... – Zoee

+0

By yol, verilerinizi nasıl çözüyorsunuz? Çünkü UTF-8 karakterini belirttiniz. Belki de bu kodlamayla uğraşmıyorsunuzdur. – Rarasen

+0

Tüm değişkenlerimi diziye koymadan önce utf8_encode() 'da sarmayı denedim ama daha iyi/alternatif bir yol olmadıkça hiçbir fark yaratmadı. – Zoee

İlgili konular