Bonjour, j'importe un fichier csv avec un script php pour mettre dans une base de donnée. Le problème est que le fichier CSV fait en excel n'est pas utf8... je ne sais pas comment faire pour l'encoder en utf8. La seul façon que j'ai trouver qui fonctionne c'est d'ouvrir le csv avec bloc notes et sauvegarder sous et là mettre en utf8...

je me demandais si en php je ne pourrais mettre une fonction qui pourrait convertir le tout en utf8 avant de l'importer dans la BD

voici mon script php

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
if($_POST['Upload'])
	{
		mysql_query("DELETE FROM pricelisttmp");
 
		$csv_filename = basename($_FILES['file_csv']['name']);
		$target_path = "../csv/";
		$target_path .= basename($_FILES['file_csv']['name']);
		if (move_uploaded_file($_FILES['file_csv']['tmp_name'],$target_path)) {
			$csv_file = fopen("../csv/".$csv_filename,"rb");
			for ($row = fgetcsv($csv_file,1024);!feof($csv_file); $row = fgetcsv($csv_file,1024)) {
				$j = sizeof($row);
				for ($i = 0; $i<$j; $i++) {
					if($row[$i] != "") {
						list($product, $price, $units, $description, $spec) = split(";", $row[$i]);
						$sql = "INSERT INTO pricelisttmp(Product,Price,Units,Description,Spec) VALUES('";
						$sql .= mysql_real_escape_string(str_replace("’","'",$product)). "','";
						$sql .= $price. "','";
						$sql .= $units. "','";
						$sql .= $description. "','";
						$sql .= $spec. "'";
						$sql .= ")";
		                mysql_query($sql);
					}
				}
			}
			$data_tmp = mysql_query("SELECT * FROM pricelisttmp");
			while ($row_tmp = mysql_fetch_array($data_tmp)) {
				$data = mysql_query("SELECT * FROM pricelist WHERE Description = '".$row_tmp['Description'] ."'");
				$num_rows = mysql_num_rows($data);
				if ($num_rows>0) { //Data exists
					//echo "Data exists for :" . $row_tmp['Description'];
					$sql = "UPDATE pricelist SET Price = ";
					$sql .= $row_tmp['Price'] .",";
					$sql .= "Product = '". $row_tmp['Product'] ."' ";
					$sql .= "Units = '". $row_tmp['Units'] ."' ";
					$sql .= "Spec = '". $row_tmp['Spec'] ."' ";
					$sql .= "WHERE Description = '". $row_tmp['Description'] ."'";
				}
				else { //New pricelist
					//echo "Insertion for :" . $row_tmp['Description'];
					$sql = "INSERT INTO pricelist(Product,Price,Units,Description,Spec ) VALUES ('";
					$sql .= $row_tmp['Product'] ."',";
					$sql .= $row_tmp['Price'] .",'";
					$sql .= $row_tmp['Units'] ."','";
					$sql .= $row_tmp['Description'] ."','";
					$sql .= $row_tmp['Spec'] ."')";
				}
				mysql_query($sql);
			}
		}
	}