2010-06-02 5 views
0

Je veux récupérer le contenu d'un fichier csv pour que je suis en utilisant le code suivant:CSV Contenu du fichier Affichage Problème

<?php 
    $fo = fopen("record.csv", "rb+"); 
    while(!feof($fo)) { 
      $contents[] = fgetcsv($fo,0,';'); 
    } 
    print_r($contents); 
    fclose($fo); 

?> 

Mais mes enregistrements sont affichés dans le format suivant:

䅲牡礊⠊††嬰崠㴾⁁牲慹ਠ†††
ਠ†††††⁛そ‽㸠"Search Transactions Results" ††††⤊ਠ†⁛ㅝ‽㸠䅲牡礊††††⠊††††††嬰崠㴾 ∀吀爀愀渀猀愀挀琀椀漀渀 䤀䐀∀Ⰰ∀刀攀昀攀爀攀渀挀攀 吀爀愀渀猀愀挀琀椀漀 

Mon format de fichier csv:

"Search Transactions Results" 
"Transaction ID","Reference Transaction ID","Date","Type","Subject","Item Number","Item Name","Invoice ID","Name","Email","Shipping Name","Shipping Address Line 1","Shipping Address Line 2","Shipping Address City","Shipping State/Province","Shipping Zip/Postal Code","Shipping Address Country","Shipping Method","Address Status","Contact Phone Number","Gross Amount","Receipt ID","Custom Field","Option 1 Name","Option 1 Value","Option 2 Name","Option 2 Value","Note","Auction Site","Auction User ID","Item URL","Auction Closing Date","Insurance Amount","Currency","Fees","Net Amount","Shipping & Handling Amount","Sales Tax Amount","To Email","Time","Time Zone" 
"1T","",5/5/2010 2:10:44 PM,"Payment Processed","CFP Self Study Kit","1","CFP Self Study Kit","","User1","[email protected]","","","","","","","","","N","","68.18","R1","","","","","","","","","",,"","USD","-2.62","65.56","0","0","[email protected]","01:40","Asia/Calcutta" 
"2T","",5/19/2010 4:04:08 PM,"Payment Processed","CFP Self Study Kit","1","CFP Self Study Kit","","User2","[email protected]","","","","","","","","","N","","68.18","R2","","","","","","","","","",,"","USD","-2.62","65.56","0","0","[email protected]","03:34","Asia/Calcutta" 
"3T","1RT",5/19/2010 5:28:45 PM,"Currency Conversion Completed","","","",""," ","","","","","","","","","","N","","17492.6","","","","","","","","","","",,"","INR","0","17492.6","0","0","","04:58","Asia/Calcutta" 
"4T","2RT",5/19/2010 5:28:45 PM,"Currency Conversion Completed","","","",""," ","","","","","","","","","","N","","-393.36","","","","","","","","","","",,"","USD","0","-393.36","0","0","","04:58","Asia/Calcutta" 
"5T","",5/19/2010 5:28:45 PM,"Transfer to Bank Initiated","P1006","","P1006",""," ","","","","","","","","","","N","","-17492.6","","","","","","","","","","",,"","INR","0","-17492.6","0","0","","04:58","Asia/Calcutta" 
"6T","",5/20/2010 5:38:02 PM,"Transfer to Bank Completed","P1006","","P1006",""," ","","","","","","","","","","N","","-17492.6","","","","","","","","","","",,"","INR","0","-17492.6","0","0","","05:08","Asia/Calcutta" 
"7T","",5/21/2010 12:32:37 PM,"Payment Processed","FP - LVC Plus","","FP - LVC Plus","","User3","[email protected]","User3","NEW DELHI","BEHIND KARNATAKA BANK LD","SOUTH","NEW DELHI","110023","IN","","N","","283.96","","","","","","","","","","",,"","USD","-9.95","274.01","0","0","[email protected]","00:02","Asia/Calcutta" 
"8T","",5/25/2010 4:40:48 PM,"Transfer to Bank Initiated","P1006","","P1006",""," ","","","","","","","","","","N","","-12569.85","","","","","","","","","","",,"","INR","0","-12569.85","0","0","","04:10","Asia/Calcutta" 
"9T","3RT",5/25/2010 4:40:48 PM,"Currency Conversion Completed","","","",""," ","","","","","","","","","","N","","-274.01","","","","","","","","","","",,"","USD","0","-274.01","0","0","","04:10","Asia/Calcutta" 
"10T","4RT",5/25/2010 4:40:48 PM,"Currency Conversion Completed","","","",""," ","","","","","","","","","","N","","12569.85","","","","","","","","","","",,"","INR","0","12569.85","0","0","","04:10","Asia/Calcutta" 
"11T","",5/26/2010 4:57:39 PM,"Transfer to Bank Completed","P1006","","P1006",""," ","","","","","","","","","","N","","-12569.85","","","","","","","","","","",,"","INR","0","-12569.85","0","0","","04:27","Asia/Calcutta" 
"Total","-247.05 USD","-15.19","-262.24" 
"Total","0.00 INR","0.00","0.00" 

Je souhaite récupérer les enregistrements où "Type" = "Payment Processed". Je souhaite récupérer le contenu dans un format de valeur de clé, par exemple. Transaction ID-> 1T car je dois stocker ces valeurs dans une base de données mais l'affichage n'est pas correct. Je suis incapable de trouver la raison de la même s'il vous plaît aidez-moi à ce sujet.

Merci

Répondre

0

le b dans le rb + pour fopen est binaire (ce qui est d'être émis) - il suffit d'utiliser r +;

+0

merci de répondre, mais maintenant je l'obtiens quand je l'ai changé en r + Array ([0] => Array ([0] => þÿ " S e a r c h T r a n s a c t i o n s R e s u l t s " ) [1] => Tableau ([0] => " T r a n s a c t i o n –

+0

Si vous obtenez toujours cela, l'original csv n'est pas du texte brut - il est codé comme un jeu de caractères différent. –

0

Depuis le PHP manual - Depuis PHP 4.3.2, le mode par défaut est binaire pour toutes les plateformes qui font la distinction entre le mode binaire et le mode texte. Si vous rencontrez des problèmes avec vos scripts après la mise à niveau, essayez d'utiliser le drapeau 't' comme une solution de contournement jusqu'à ce que vous ayez rendu votre script plus portable comme mentionné précédemment. Assurez-vous simplement d'utiliser rt +. Faites savoir si cela aide.

0

le problème ci-dessus était lié à l'encodage. J'ai copié le fichier csv et collé dans le bloc-notes et enregistrer en tant que .csv et l'encodage en ansi. Maintenant, le contenu vient comme

Array ([0] => Array ([0] => Search Transactions Results) [1] => Array ([0] => Transaction ID,"Reference Transaction ID","Date","Type","Subject","Item Number","Item Name","Invoice ID","Name","Email","Shipping Name","Shipping Address Line 1","Shipping Address Line 2","Shipping Address City","Shipping State/Province","Shipping Zip/Postal Code","Shipping Address Country","Shipping Method","Address Status","Contact Phone Number","Gross Amount","Receipt ID","Custom Field","Option 1 Name","Option 1 Value","Option 2 Name","Option 2 Value","Note","Auction Site","Auction User ID","Item URL","Auction Closing Date","Insurance Amount","Currency","Fees","Net Amount","Shipping & Handling Amount","Sales Tax Amount","To Email","Time","Time Zone") [2] => Array ([0] => 1T,"",5/5/2010 2:10:44 PM,"Payment Processed","CFP Self Study Kit","1","CFP Self Study Kit","","User1","[email protected]","","","","","","","","","N","","68.18","R1","","","","","","","","","",,"","USD","-2.62","65.56","0","0","[email protected]","01:40","Asia/Calcutta") [3] => Array ([0] => 2T,"",5/19/2010 4:04:08 PM,"Payment Processed","CFP Self Study Kit","1","CFP Self Study Kit","","User2","[email protected]","","","","","","","","","N","","68.18","R2","","","","","","","","","",,"","USD","-2.62","65.56","0","0","[email protected]","03:34","Asia/Calcutta") [4] => Array ([0] => 3T,"1RT",5/19/2010 5:28:45 PM,"Currency Conversion Completed","","","",""," ","","","","","","","","","","N","","17492.6","","","","","","","","","","",,"","INR","0","17492.6","0","0","","04:58","Asia/Calcutta") [5] => Array ([0] => 4T,"2RT",5/19/2010 5:28:45 PM,"Currency Conversion Completed","","","",""," ","","","","","","","","","","N","","-393.36","","","","","","","","","","",,"","USD","0","-393.36","0","0","","04:58","Asia/Calcutta") [6] => Array ([0] => 5T,"",5/19/2010 5:28:45 PM,"Transfer to Bank Initiated","P1006","","P1006",""," ","","","","","","","","","","N","","-17492.6","","","","","","","","","","",,"","INR","0","-17492.6","0","0","","04:58","Asia/Calcutta") [7] => Array ([0] => 6T,"",5/20/2010 5:38:02 PM,"Transfer to Bank Completed","P1006","","P1006",""," ","","","","","","","","","","N","","-17492.6","","","","","","","","","","",,"","INR","0","-17492.6","0","0","","05:08","Asia/Calcutta") [8] => Array ([0] => 7T,"",5/21/2010 12:32:37 PM,"Payment Processed","FP - LVC Plus","","FP - LVC Plus","","User3","[email protected]","User3","NEW DELHI","BEHIND KARNATAKA BANK LD","SOUTH","NEW DELHI","110023","IN","","N","","283.96","","","","","","","","","","",,"","USD","-9.95","274.01","0","0","[email protected]","00:02","Asia/Calcutta") [9] => Array ([0] => 8T,"",5/25/2010 4:40:48 PM,"Transfer to Bank Initiated","P1006","","P1006",""," ","","","","","","","","","","N","","-12569.85","","","","","","","","","","",,"","INR","0","-12569.85","0","0","","04:10","Asia/Calcutta") [10] => Array ([0] => 9T,"3RT",5/25/2010 4:40:48 PM,"Currency Conversion Completed","","","",""," ","","","","","","","","","","N","","-274.01","","","","","","","","","","",,"","USD","0","-274.01","0","0","","04:10","Asia/Calcutta") [11] => Array ([0] => 10T,"4RT",5/25/2010 4:40:48 PM,"Currency Conversion Completed","","","",""," ","","","","","","","","","","N","","12569.85","","","","","","","","","","",,"","INR","0","12569.85","0","0","","04:10","Asia/Calcutta") [12] => Array ([0] => 11T,"",5/26/2010 4:57:39 PM,"Transfer to Bank Completed","P1006","","P1006",""," ","","","","","","","","","","N","","-12569.85","","","","","","","","","","",,"","INR","0","-12569.85","0","0","","04:27","Asia/Calcutta") [13] => Array ([0] => Total,"-247.05 USD","-15.19","-262.24") [14] => Array ([0] => Total,"0.00 INR","0.00","0.00") [15] =>) 

Mais je voulais que tête-> chose de valeur et que pour seulement Type = Payment processed

Pour exemple "Transaction ID" -> '1T'

Questions connexes