Bonjour à tous,

je suis en train de transformer un fichier xml en sql avec des expressions régulières en php.


mon fichier sql se trouve composé de lignes sous cette forme:

insert into ouvrage (annee, langue, titre, support, titre2, auteur) values(' 1995 ','espagnol',' ¡ Venga, vamos 1! ','CD ROM ',' / Ana Gainza', 'Gainza , Ana');

seulement j'ai des lignes qui n'ont pas d'auteur et je me retrouve avec :

Insert into ouvrage (annee, langue, titre, support, titre2, auteur) values(' 1996 ','français','L''acte de vente ','CD ROM',' / Université Blaise Pascal, Clermont 2');

donc avec un champs de moins.

Comment faire pour compter les ',' dans chaque ligne et si il m'en manque rajouter ,'' à la fin de la ligne?

j'ai bien essayé des choses comme ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$contents = ereg_replace('(values[(|)\'[:space:]]*)(([[:punct:]]|[[:alnum:]]|[[:space:]])*)(\',\')(([[:punct:]]|[[:alnum:]]|[[:space:]])*)(\',\')
(([[:punct:]]|[[:alnum:]]|[[:space:]])*)(\',\')(([[:punct:]]|[[:alnum:]]|[[:space:]])*)
(\',\')(([[:punct:]]|[[:alnum:]]|[[:space:]])*)([(|);]*)','\\0\\1\\2\\3\\4\\5\\6\\7\\8\\9,\'\');',$contents);
mais sans succès...

merci d'avance.