Bonjour.

Mon code ci-après fonctionne bien et permet d'extraire le Nom et l'Email de ce fichier .csv à traiter. Le problème c'est que, pour traiter un fichier .csv qui contient les chaînes de caractères , Inc. et , Corp., mon Code ci-dessous considère les caractères , Inc. et , Corp. qui sont compris dans le noms comme des colonnes.

Par exemple, le contenu du fichier Fichier2.csv est ce qui suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
CompanyName,Email,Phone Number
Test Web1, Inc.,test1@test.com,6898655
Test Web2, Corp.,test2@test.com,78554466
Mais après le traitement ou l'exécution du code PHP ci-dessous, je reçois comme résultats dans le nouveau fichier Fichier3.new.csv ce qui suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Name,Email
Test Web1,"Inc."
Test Web2,"Corp."

Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
 
// Paramétrage des fichiers
$file_source = 'Fichier2.csv';
$file_destination = 'Fichier3.new.csv';
 
// Création du fichier de destination
$fp_destination = fopen($file_destination, 'w');
fputcsv($fp_destination, ['Name', 'Email'], ',', '"', ''); // Ecriture de l'en-tête
 
$fp_source = fopen($file_source, 'r');
$header = fgetcsv($fp_source, 0, ',', '"', ''); // 1re ligne, c'est l'en-tête
$headerNames = array('Name', 'Last Name', 'FIRST_NAME', 'LAST_NAME', 'First Name', 'FirstName', 'LastName', 'Country', 'Company', 'COMPANY_NAME', 'COMPANY NAME', 'Business Name', 'CompanyName', 'Company Name', 'Company_Name');
$headerEmails = ['Email-Address', 'Address Email', 'Email Address', 'Email_Address', 'EMAIL', 'Email', 'EmailAddress', 'EMAIL_ADDRESS', 'ADDRESS-EMAIL'];
 
// Paramétrage des colonnes à récpuérer selon le fichier CSV source
foreach($header as $keyHeader => $valueHeader) {
	if (in_array($valueHeader, $headerNames)) {
		$nameIndex = $keyHeader;
	} else if (in_array($valueHeader, $headerEmails)) {
		$emailIndex = $keyHeader;
	}
}
 
while ($entry = fgetcsv($fp_source, 0, ',', '"', '')) {
    $name = $entry[$nameIndex];
    $email = $entry[$emailIndex];
    fputcsv($fp_destination, [$name, $email], ',', '"', '');
}
 
fclose($fp_source);
fclose($fp_destination);
?>
Aidez-moi s'il vous plaît à revoir mon Code afin que le retour ne prenne pas en considération la virgule (,) avant le , Inc. et le , Corp. comme la colonne de Email et ressemble à un truc comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Name,Email
Test Web1, Inc.,test1@test.com
Test Web2, Corp.,test2@test.com

Merci d'avance.