Bonjour, devant faire de l'import de base à partir d'un fichier .txt que je ne peux modifier, je me heurte à un petit soucis :
- un champ commentaire est mal formaté et comporte des \n qui sont aussi mes caractères de fin de ligne pour mon LOAD DATA INFILE ce qui provoque une erreur puisque mysql détecte deux lignes aux lieu d'une.
- j'essaye donc de purger mon fichier mais je n'arrive à rien de satisfaisant voici comment je pensais procéder: chaque ligne d'insert commence par un champ qui est soit: _SO , _SE , _NE, _OU , _U1
j'essaye donc de détecter toute les lignes ne commençant pas par ca pour les concaténer avec les précédentes .
voici mon code:
je n'arrive à rien de bon aurait vous une solution via les regex que je ne maitrise pas du tout
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 <? //ouverture fichier $chemin="brasil_g4_listage_des_broches_ou_ports_hsm_plaque_idf.txt"; $lines=file($chemin,FILE_SKIP_EMPTY_LINES ); $i=0; foreach ($lines as $line_num => $line) { //test si 3premiers carac = idplaque if($line != ''){ eregi('([0-9A-z]{3})', $line, $out); if($out[0] != "_SE" && $out[0] != "_S0" && $out[0] != "_U1" && $out[0]!="_NE" && $out[0]!="_OU" && $line_num != 0 && $line_num != 1){ //on enleve le \n de la ligne précedente $piece[0]=substr_replace($line0 , " " , -2 ); $piece[1]=$line; $line0=implode(" ",$piece); $fich[]=$line0; } else { if(isset($line0))$fich[]=$line0; $line0=$line; } } file_put_contents ( "test.txt" ,$fich); ?>





Répondre avec citation



Partager